Linux CPU占用率监控工具小结

关键词:top、perf、sar、ksar、mpstat、uptime、vmstat、pidstat、time、cpustat、munin、htop、glances、atop、nmon、pcp-gui、collectl

 

1. top

top是最常用的查看系统资源使用情况的工具,包括CPU、内存等等资源。

这里主要关注CPU资源。

1.1 /proc/loadavg

load average取自/proc/loadavg。

9.53 9.12 8.37 3/889 28165

前三个数字是1、5、15分钟内进程队列中平均进程数,包括正在运行的进程+准备好等待运行的进程。

第四个数字分子表示正在运行的进程数,分母是进程总数。

最后一个数字是最近运行的进程ID号。

其中top取的是/proc/loadavg的前三个数。

1.2 top使用

打开top,可以指定更新的周期。

输入H,打开隐藏的线程;输入1,可以显示单核CPU使用情况。

top -H -b -d 1 -n 200 > top.txt,每个1秒统计一次,共200次,显示线程细节,并保存到top.txt中。

top采样来源你还依赖于/proc/stat和/proc//stat两个,这两个的详细介绍参考:/proc/stat和/proc//stat。

其中CPU信息对应的含义如下:

us是user的意思,统计nice小于等于0的用户空间进程,也即优先级为100~120。

ni是nice的意思,统计nice大于0的用户空间进程,也即优先级为121~139。

sys是system的意思,统计内核态运行时间,不包括中断。

id是idle的意思,几系统处于空闲态。

wa是iowait的意思,统计io等待时间。

hi是hardware interrupt,统计硬件中断时间。

si是software interrupt,统计软中断时间。

最后的st是steal的意思。

 

Linux CPU占用率监控工具小结_第1张图片

 

 

2. perf

《系统级性能分析工具perf的介绍与使用》有关于perf使用的详细介绍,这里重点关注CPU占用率。

通过sudo perf top -s comm,可以查看当前系统运行进程占比。

这里不像top一样区分idle、system、user,这里的占比是各个进程在总运行时间里面占比。

通过sudo perf record记录采样信息,然后通过sudo perf report -s comm。

Linux CPU占用率监控工具小结_第2张图片

 

 

3. sar、ksar

sar是System Activity Report的意思,可以用于实时观察当前系统活动,也可以生成历史记录的报告。

要使用sar需要安装sudo apt install sysstat,然后对sysstat进行配置。

sar用于记录统计信息,ksar用于将记录的信息图形化输出。

ksar下载地址在:https://github.com/vlsi/ksar/releases

sudo gedit /etc/default/sysstat--------------------------------将 ENABLED=“false“ 改为ENABLED=“true“。

sudo gedit /etc/cron.d/sysstat--------------------------------修改sar的周期等配置。

sudo /etc/init.d/sysstat restart--------------------------------重启sar服务

/var/log/sysstat/--------------------------------------------------sar log存放目录

使用sar记录开机到目前的统计信息到文件sar.txt。

LC_ALL=C sar -A > sar.txt 

PS:这里直接使用sar -A,在ksar中无法正常显示。

如下执行java -jar ksar.jar,然后Data->Load from text file...选择保存的sar.txt文件。

得到如下的图表。 

Linux CPU占用率监控工具小结_第3张图片

还可以通过sar记录一段时间的信息,指定采样周期和采样次数。

这些命令前加上LC_ALL=C之后保存到文件中,都可以在ksar中图形化显示。

sar 1 100---------------------------------------所有cpu合一的统计信息

sar -P ALL 1 100-----------------------------包括cpu合一以及单个cpu的统计信息

sar -B 1 100-----------------------------------paging统计信息

sar -b 1 100----------------------------------块设备IO统计信息

sar -d 1 100----------------------------------块设备活动统计信息

sar -F 1 100---------------------------------挂载的文件系统统计信息

sar -r ALL------------------------------------显示详细的内存使用统计信息

sar -S----------------------------------------显示swap空间使用情况统计信息

sar -w---------------------------------------显示进程创建以及进程切换统计信息

sar -W--------------------------------------显示swap换入换出统计信息。

 

更详细请参考《How To Create sar Graphs With kSar To Identifying Linux Bottlenecks》、《Collect and report Linux System Activity Information with sar》。

 

4. mpstat

mpstat是Multiprocessor Statistics。当没有参数时,mpstat显示系统系统以来所有信息平均值。

常见用法如下,-P ALL监控所有CPU,细节显示特定CPU;10表示每10秒监控一次;20表示监控20次。

mpstat -P ALL 10 20

结果如下:

Linux 4.13.0-36-generic (xxx)     2018年08月13日     _x86_64_    (4 CPU)

11时01分09秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
11时01分19秒  all    3.44    6.26    5.15    0.13    0.00    0.20    0.00    0.00    0.00   84.82
11时01分19秒    0    3.09   13.46    3.29    0.00    0.00    0.10    0.00    0.00    0.00   80.06
11时01分19秒    1    4.41    3.11    5.02    0.00    0.00    0.60    0.00    0.00    0.00   86.86
11时01分19秒    2    2.96    0.20    9.29    0.00    0.00    0.10    0.00    0.00    0.00   87.45
11时01分19秒    3    3.32    7.95    3.12    0.50    0.00    0.00    0.00    0.00    0.00   85.11

11时01分19秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
11时01分29秒  all    3.65    6.09    5.08    0.00    0.00    0.25    0.00    0.00    0.00   84.93
11时01分29秒    0    3.92   11.07    4.63    0.00    0.00    0.20    0.00    0.00    0.00   80.18
11时01分29秒    1    4.39    1.90    3.49    0.00    0.00    0.80    0.00    0.00    0.00   89.42
11时01分29秒    2    3.35    0.10   10.14    0.00    0.00    0.00    0.00    0.00    0.00   86.41
11时01分29秒    3    2.91   11.26    2.21    0.00    0.00    0.00    0.00    0.00    

你可能感兴趣的:(操作系统,运维,python)