记录服务器 CPU 的一些性能指标
CPU 指标
Linux 机器使用 top 命令或 vmstat 命令查看。
需要注意当 CPU 使用率较大时,使用 vmstat 命令查看到的结果可能有延迟误差,此时可用 top 命令查询单个 CPU 的情况。
CPU 使用率
top 命令关注第三行的 CPU 使用情况。
%Cpu(s): 12.5 us, 10.8 sy, 0.5 ni, 41.9 id, 8.6 wa, 0.2 hi, 2.0 si, 0.0 st
- CPU 状态解释
- us【user space】— 用户空间占用CPU的百分比。
- sy【sysctl】— 内核空间占用CPU的百分比。
- ni【nice】— 改变过优先级的进程占用CPU的百分比
- id【idolt】— 空闲CPU百分比
- wa【wait】— IO等待占用CPU的百分比
- hi【Hardware IRQ】— 硬中断占用CPU的百分比
- si【Software Interrupts】— 软中断占用CPU的百分比
CPU 使用率 = 100 - id
- 建议指标
一般而言,CPU 使用率大于 50% 时,为注意;大于 70% 时,为告警;大于 90% ,为严重;
在 70% 左右使用率,CPU 的处理速度已经开始趋缓, 90% 左右会影响系统的操作,有卡顿情况;
所以对于 CPU 的使用率,建议在 50% ~ 70% ,此时可达到 CPU 的最优处理速度。
CPU 负载
-
逻辑核数
CPU 的负载计算,与 CPU 的逻辑核数有关,可用以下命令查看 CPU 的逻辑核数cat /proc/cpuinfo | grep "processor" |wc -l
-
查看 CPU 负载
top 命令结果的第一行,有 load average ,其后面的三个数值除以 CPU 逻辑数 ,即为每个 CPU 内核负载在 1min 5min 15min 内的平均值;top - 13:27:06 up 133 days, 55 min, 8 users, load average: 5.47, 5.25, 4.19
-
建议指标
大于 1 ,有一定的负载情况;
1 ~ 3 之间若系统资源运行正常,则为可接收范围;
大于5 , 则系统性能已经存在问题,一般大于 2 视为高负载情况,大于 3 时系统可能已将近卡死状态;
建议不大于 0.8,另外 1min 的取值可能存在延迟误差,以 5min 15min 时的数值为准; -
vmstat
对于 vmstat 命令,由于其 计数器 与 CPU 逻辑数有关,可关注 r 列的 CPU 等待处理线程。
CPU 的线程处理时单个执行的,所以 r 列的数值长期大于 CPU 逻辑数,则需要考虑增加 CPU ,因此时的 CPU 资源已不足,且系统运行缓慢。