CPU 的主要指标: CPU Utilization CPU 使用率,CPU 的使用时间百分比,75%以上就比较高了
在任意时间内,CPU 有 7 个状态: 1
idle,表示 CPU 闲置并等待工作分配
user,表示 CPU 在运行用户的进程 3
system,表示 CPU 在执行 kernel 工作 4
nice,表示 CPU 花费在被 nice 改变过优先级的 process 上的时间(注意:被 nice 命令改变优先级的 process 仅指那些 nice 值为负的 process
花费在被 nice 命令改变优先级的任务上的时间也将被计算在系统和用户时间内,因此整个时间加起来可能会超过百分之百) 5
iowait,表示 CPU 等待 IO 操作完成的时间 6
irq,表示 CPU 开销在响应硬中断上的时间 7
softirq,表示 CPU 开销在响应软中断上的时间
我们一般用 vmstat 看到的都是四个状态:sy,us,id,wa,通过他和 load avg 结合,基本可以知道cpu 的状态 大部分的性能工具用百分比表示 CPU 时间
当 system 时间占用很高的时候,你可以用"oprofile"工具发现时间都花费在哪里
当 iowait 很高的时候,你需要分析你的 IO 设备,比如磁盘,网卡
Average load 平均负载,上一分钟同时处于“就绪”状态的平均进程数
Load 这个东西怎么理解呢,就像一条马路,有 N 个车道,如果 N 个进程进入车道,那么正好一人一个,再多一辆车就占不到车道,要等有一个车空出车道
在 CPU 中可以理解为 CPU 可以并行处理的任务数,那么就是“CPU 个数 * 核数”,如果CPU Load = CPU 个数 * 核数 那么就是说CPU 正好满负载,再多一点,可能就要出问题了,有任务不能被及时分配处理器