欢迎投稿

今日深度:

配置Informix动态服务器中CPU虚处理器

配置Informix动态服务器中CPU虚处理器


在动态服务器中,CPUVP(cpu虚拟处理器)是多线索的进程,它一直在处理器上运行除非发生以下的情况:

1.CPUVP没有任务可以做,例如就绪队列中没有等待执行的线索。
2.操作系统强迫CPUVP让出CPU给其它的进程使用。
为了优化吞吐量考虑,需要将NUMCPUVPS设置为能够正常处理任务的最小的一个数,这个数目应该小于或者等于系统中的CPU数目,建议不要将CPUVP的数目设置大于可用的CPU数目,如果CPUVP的数目不能满足要求,这就表示需要提高CPU的性能来解决问题。只有存在另外的CPU,才能通过增加CPUVP来解决问题。也可以采用停下系统中的其它任务,为虚处理器释放CPU周期,从而改善性能。
增加CPUVP的数目而不增加CPU,只会使问题更加严重,产生更多的CPU竞争,这样操作系统要做更多的工作来调度这些CPU的竞争,结果是CPUVP的负担更重,上下文切换增加,这不仅仅消耗时间而且要使用更多的CPU。
由于系统中不光是CPUVP,还有其它的进程申请CPU周期,在一些多处理器的系统上,NUMCPUVPS应该小于全部的CPU数,对多处理器系统,我们建议如下设置NUMCPUVPS:NUMCPUVPS=全部CPU数-1
通过命令onstat-grea来检测就绪队列,确认CPU是否不能承担任务。就绪队列的线索是将要执行的线索,如果就绪队列的线索数开始加速增长,这就表CPUVP已经不能承担如此繁重的任务。在调整好的系统上看到几个就绪线索,或者是在测试工作开始时有些线索增加是正常的。每个CPUVP上有一个就绪线索是合理的。
另外,查看CPUVP的使用情况,如CPUVP跟不上任务的增长,就会看到虚拟处理机处于饱和,可以用命令onstat-gglo监视虚处理机的使用情况,如果系统和用CPUVP的时间之和接近于测试花费的时间,那么CPUVP就饱和了,如果NUMCPUVPS的值低于系统中的CPU数目,可以增加一个CPUVP,但不要超出系统中的全部CPU数目。
注意:在多处理器系统中全部可利用的CPU时间等于处理器数目乘以测试时间,一个CPUVP不能在某一个时刻消耗多余一个处理器的能力,因此一个CPUVP的全部CPU比率不会超过测试时间的100%。
如果整个系统中CPU资源已经饱和,而且不能再减轻工作负荷或增加资源,可以通过减小NUMCPUVPS来改善性能。但这种变化只有在CPUVP急需其它虚处理器或进程的CPU资源时才起作用。每次减少一个CPUVP,而NUMCPUVPS必须设置为大于0的值。
对开发者而言:当CPUVP未被堵塞,正在完成有用的工作,并且能良好地管理其线索的运行,此刻系统处于最佳状态。例如,如果进程需要休眠,以等待I/O的完成或者锁被释放,而不是安排其它的线索运行,那么可能需要每个CPU有多个CPUVP,以获得最大的吞吐量。但使用多CPUVP会降低系统效率,这是因为系统不仅要花费很大的代价来处理上下文的切换,而且要为增长的处理机快速缓存的竞争付出代价。应确保循环执行的线索把CPU让给有更多工作要做的线索。最后,要避免直接使用操作系统调用,如利用CPUVP数目确定一些非CPU负责活动的线索数时,会出现其它问题。系统管理员要监控系统,如果CPU空闲应该增加CPUVP数目。
多线索背景资料
操作系统的两项责任是提高CPU资源的利用率,确保进程可以平等地访问资源。操作系统各不相同,但通常直到下列事情发生前,进程都会在CPU上运行。
1.进程结束
2.进程需要等待某些事件,如一次磁盘I/O的完成
3.进程超过分配给它的时间片,而且还有其它的进程等待执行
4.有优先级更高的进程需要使用CPU,要求这个进程必须立即放弃对CPU的占用
当其中一个情况发生的时候,操作系统停止在CPU上执行的进程,保留重要的进程状态并开始执行另一个进程。这就是众所周知的上下文切换。原则是CPU从不会在有工作的时候闲置。多线索,其概念基本相同,主要的不同之处是工作分到了各个线索有时也称为轻进程),而虚处理机执行线索间的任务切换,例如当一个线索需要等待一次磁盘I/O的完成,CPUVP会保留其上下文,从就绪队列中选取一个新线索来执行,加载这条新线索的上下文,从新的程序地址开始执行那个线索,线索切换比进程上下文切换的效率更高。


www.htsjk.Com true http://www.htsjk.com/shujukujc/19287.html NewsArticle 配置Informix动态服务器中CPU虚处理器 在动态服务器中,CPUVP(cpu虚拟处理器)是多线索的进程,它一直在处理器上运行除非发生以下的情况: 1.CPUVP没有任务可以做,例如就绪队列中没有...
评论暂时关闭