本篇将介绍CPU使用率过高的处理方案。
CPU使用率
CPU使用率过高,跟内存和进程都有关系,例如复杂运算,一般都会导致CPU升高。使用top命令查看(按1可以查看多核的CPU使用情况):
产生原因
第三行 CPU 占用率根据类型有以下几种情况:
- (us) user:CPU 在低 nice 值(高优先级)用户态所占用的时间(nice<=0)。正常情况下只要服务器不是很闲,那么大部分的 CPU 时间应该都在此执行这类程序
- (sy) system:CPU 处于内核态所占用的时间,操作系统通过系统调用(system call)从用户态陷入内核态,以执行特定的服务;通常情况下该值会比较小,但是当服务器执行的 IO 比较密集的时候,该值会比较大
- (ni) nice:CPU 在高 nice 值(低优先级)用户态以低优先级运行占用的时间(nice>0)。默认新启动的进程 nice=0,是不会计入这里的,除非手动通过 renice 或者 setpriority() 的方式修改程序的nice值
- (id) idle:CPU 在空闲状态(执行 kernel idle handler )所占用的时间
- (wa) iowait:等待 IO 完成做占用的时间
- (hi) irq:系统处理硬件中断所消耗的时间
- (si) softirq:系统处理软中断所消耗的时间,记住软中断分为 soft