在腾讯云购买两台机器作为测试机器,机器配置如下:
先从命令uptime说起
# uptime
08:44:17 up 8 min, 1 user, load average: 0.00, 0.03, 0.05 //分别是当前时间 系统运行时间 当前登录数 1/5/15 分钟系统平均负载
平均负载指单位时间内系统,系统处于 可运行状态 和 不可中断状态 的平均进程数,也就是平均活跃
进程数,与CPU没有直接关系
平均负载最理想的情况是等于CPU个数
grep 'model name' /proc/cpuinfo | wc -l
2
Stress 是一款压力测试工具 ,详情可参考http://stresslinux.org/sl/
Sysstat 包含了常用的性能工具
安装过程如下:
git clone git://github.com/sysstat/sysstat
cd sysstat
./configure
make
sudo make install
下面使用案例进行分析
stress --cpu 1 --timeout 600
同时打开三个终端进行观察
# mpstat -P ALL 5 1
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
Average: all 50.25 0.00 0.30 0.20 0.00 0.00 0.00 0.00 0.00 49.25
Average: 0 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: 1 0.60 0.00 0.40 0.20 0.00 0.00 0.00 0.00 0.00 98.80
# watch -d uptime
# pidstat -u 5 1
Average: UID PID %usr %system %guest %CPU CPU Command
Average: 0 8551 0.00 0.20 0.00 0.20 - YDService
Average: 0 19466 100.00 0.00 0.00 100.00 - stress
通过观察我们可以发现stress进程会导致CPU 0 的利用率一直上升
1分钟的平均负载也会慢慢增加到1甚至大于1
# stress -i 1 --timeout 600
# watch uptime
10:31:32 up 1 day, 1:56, 3 users, load average: 0.99, 0.59, 0.34
#mpstat -P ALL 5 1
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
Average: all 0.20 0.00 45.99 4.11 0.00 0.00 0.00 0.00 0.00 49.70
Average: 0 0.00 0.00 91.37 7.83 0.00 0.00 0.00 0.00 0.00 0.80
Average: 1 0.20 0.00 0.60 0.40 0.00 0.00 0.00 0.00 0.00 98.80
#stress -c 12 --timeout 600
#watch uptime
18:42:28 up 1 day, 10:07, 3 users, load average: 12.34, 5.83, 2.30
#pidstat -u 5 1
Average: UID PID %usr %system %guest %wait %CPU CPU Command
Average: 0 2562 0.00 0.20 0.00 0.00 0.20 - barad_agent
Average: 0 4745 16.77 0.00 0.00 84.63 16.77 - stress
Average: 0 4746 16.57 0.00 0.00 83.83 16.57 - stress
Average: 0 4747 16.57 0.00 0.00 83.23 16.57 - stress
Average: 0 4748 16.57 0.00 0.00 83.63 16.57 - stress
Average: 0 4749 16.77 0.00 0.00 83.63 16.77 - stress
Average: 0 4750 16.57 0.00 0.00 82.24 16.57 - stress
Average: 0 4751 16.57 0.00 0.00 83.23 16.57 - stress
Average: 0 4752 16.57 0.00 0.00 83.63 16.57 - stress
Average: 0 4753 16.57 0.00 0.00 83.23 16.57 - stress
Average: 0 4754 16.77 0.00 0.00 83.03 16.77 - stress
Average: 0 4755 16.77 0.00 0.00 83.43 16.77 - stress
可以看出12个进程争夺2个CPU,导致 I/O wait 高达80% 以上,超过了CPU计算能力
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。