linux性能评估与分析工具---CPU篇

一. uptime

root@calm:~# uptime
 21:35:44 up 54 days, 11:50,  1 user,  load average: 0.04, 0.09, 0.04

这里主要关注load average参数,3个值分别表示最近1分钟,5分钟,15分钟的系统负载值。此部分值可参考CPU的个数或者核数,CPU的信息可用lscpu或者cat /proc/cpuinfo查看

如果5分钟的负载值或15分钟的负载值长期超过CPU个数的2倍,说明系统当前处于高负载,需要优化

如果数值长期低于CPU个数或核数,说明系统运行正常

如果长期处于1以下,说明CPU资源没得到有效利用

二. vmstat

这是个较全面的性能分析工具,可观察进程状态,内存使用情况,swap使用情况,磁盘的IO, CPU的使用等信息

1. 基本用法

root@calm:~# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 106932 177760 447260    0    0     7    13    1    3  1  0 98  0  0

不加任何参数,vmstat命令只输出一条记录,这个数据是自系统上次重启之后到现在的平均数值

 

root@calm:~# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 106044 178532 447636    0    0     7    13    1    3  1  0 98  0  0
 0  0      0 105896 178532 447644    0    0     0     0  174  417  1  1 98  0  0
 0  0      0 105896 178532 447644    0    0     0     0  177  445  2  0 98  0  0

其中1表示刷新时间间隔。如果不指定,只显示一条结果。3表示刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

 2. vmstat输出结果参数说明

3. 各自值性能分析

1)process第一列r表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,说明CPU不足;第二列b表示在等待资源的进程数,等待的资源有I/O或内存交换等

2)CPU列显示了用户进程和内核所消耗的CPU的时间百分比。us的值较高时,说明用户消耗的CPU时间多,us+sy的参考值为80%,如果长期大于80%说明可能存在CPU不足

3)swap列表示系统交换分区使用情况,一般si,so的值都为0,如果他们长期不为0,则表示系统内存不足

4)io列显示磁盘读写状况,这里设置的bi+bo参考值为1000,如果大于1000,切wa的值较大,这表示系统磁盘IO有问题

5)system项显示采集间隔内发生的中断数,in和cs的值越大,就会看到由内核消耗的CPU时间越多。

 可参考 https://www.cnblogs.com/kerrycode/p/6208257.html

原文地址:https://www.cnblogs.com/regit/p/8660655.html