目录
1.3 显示所有CPU的统计信息(4 3 表示每4秒运行一次,总共运行3次)
一 mpstat命令
1.1 下载mpstat软件包
yum install -y sysstat
1.2 mpstat命令的含义
显示参数 | 描述 |
CPU | 显示的是某个CPU(0-n-1) 还是全部CPU all=全部 |
%usr | 表示用户所有使用的CPU百分比 |
%nice | 表示使用nice值的CPU的百分比 |
%sys | 表示内核进程使用的CPU百分比 |
%iowait | 表示等待进行I/O所使用的CPU时间百分比 |
%irq | 表示用于处理系统中断的CPU百分比 |
%soft | 表示用于软件中断的CPU百分比 |
%steal | 虚拟机强制CPU等待的时间百分比 |
%guest | 虚拟机占用CPU时间的百分比 |
%gnice | CPU运行niced guest虚拟机所花费的时间百分比 |
%idle | CPU的空闲时间的百分比 |
1.3 显示所有CPU的统计信息(4 3 表示每4秒运行一次,总共运行3次)
mpstat -P ALL 4 3
显示第一块CPU的显示信息
1.4 平均负载信息
使用uptime来了解系统的负载情况
如果单个CPU性能活动进程数不大于3,表示系统情况良好
最后三个数表示1分钟,5分钟,15分钟的平均负载值
二 压力测试工具stress
stress是linux下的一个压力测试工具,可以对CPU、memory(内存)I/O和磁盘进行压力测试,可以指定负载的CPU个数
2.1 参数详情
-c | --cpu | 产生n个进程,每个进程都反复不停的计算随机数的平方根 |
-i | --io | 产生n个进程,每个进程反复调用,将内存上的内容写到硬盘上 |
-m | --vm | 产生n个进程,每个进程不断分配和释放内容 |
-t | --timeout | 在n秒后结束进程 |
-d | --hdd | 产生n个不断执行write和unlink函数的进程(创建文件、写入内容、删除文件) |
2.2 安装工具
yum install -y epel-release
yum install -y stress
三 实验
3.1 模拟CPU负载
3.1.1 查看系统平均负载情况:uptime
3.1.2 压力测试查看CPU的使用率
压力测试前的CPU使用率
3.1.3 进行压力测试
stress --cpu 2 --timeout 600 #对两块CPU压力测试,持续600秒
通过mpstat可以看到CPU的使用率为100%
3.1.4 查看进程和任务
pidstat -u 5 查看进程和任务,每5秒刷新一次
3.1.5 问题原因:压力测试导致CPU负载
解决问题:杀死负载进程,释放CPU
kill -9+进程号
3.2 模拟I/O负载
3.2.1 进行压力测试
stress --io 15 --hdd 15 --timeout 600s/stress -i 15 -d 15 -t 600s #产生10个进程,持续600秒
3.2.2 压力测试结果
mpstat -P ALL 1 2
3.2.3 找出问题原因:查看是否有进程导致I/O读写负载
pidstat -d 1 3 #查看各进程情况
问题原因:stress占用进程倒是io读写过高
解决方法:杀死进程
四 本章总结
cpu使用率是单位时间内cpu繁忙情况的统计,跟系统平均负载不一定完全对应,系统中存在大量等待cpu调度的进程,会使load average平均负载和cpu使用率都升高,mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询每个CPU的性能指标,以及所有CPU的平均指标。