Linux服务器性能分析之CPU利用率
SCHED_RR对应“时间片轮转法”,适合于每次运行需要较长时间的实时进程。一个运行进程分配一个时间片(如200毫秒),当时间片用完后,CPU被另外进程抢占,而该进程被送回相同优先级队列的末尾。SCHED_OTHER是传统的Unix调度策略,适合于交互式的分时进程。这类进程的优先权取决于两个因素,一个因素是进程剩余时间配额,如果进程用完了配给的时间,则相应优先权为0;另一个是进程的优先数nice,这是从Unix系统沿袭下来的方法,优先数越小,其优先级越高。 nice的取值范围是19-20。用户可以利用nice命令设定进程的nice值。但一般用户只能设定正值,从而主动降低其优先级;只有特权用户才能把nice的值置为负数。进程的优先权就是以上二者之和。核心动态调整用户态进程的优先级。这样,一个进程从创建到完成任务后终止,需要经历多次反馈循环。当进程再次被调度运行时,它就从上次断点处开始继续执行。对于实时进程,其优先权的值是(1000+设定的正值),因此,至少是1000。所以,实时进程的优先权高于其它类型进程的优先权。另外,时间配额及nice值与实时进程的优先权无关。如果系统中有实时进程处于就绪状态,则非实时进程就不能被调度运行,直至所有实时进程都完成了,非实时进程才有机会占用CPU。 后台命令(在命令末尾有&符号,如gcc f1.c& )对应后台进程(又称后台作业),后台进程的优先级低于任何交互(前台)进程的优先级。所以,只有当系统中当前不存在可运行的交互进程时,才调度后台进程运行。后台进程往往按批处理方式调度运行。 3. 调度时机 核心进行进程调度的时机有以下几种情况: (1)当前进程调用系统调用nanosleep( )或pause( )使自己进入睡眠状态,主动让出一段时间的CPU使用权; (2)进程终止,永久地放弃对CPU的使用; (3)在时钟中断处理程序执行过程中,发现当前进程连续运行的时间过长; (4)当唤醒一个睡眠进程时,发现被唤醒的进程比当前进程更有资格运行; (5)一个进程通过执行系统调用来改变调度策略或降低自身的优先权(如nice命令),从而引起立即调度。 4. 调度算法 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |