killcpu.sh,can make all cpu used percent to 100%
起初我们想测一下一台主机CPU空载与满负载(100%)时用电是不是相差很大。实测发现HP小机有差别,而IBM小机无变化。
用的是如下一段脚本,想让CPU利用率为多少就能到多少,脚本很简单,只有短短15行。
#! /bin/sh
# filename killcpu.sh
for i in `seq $1`
do
echo -ne ”
i=0;
while true
do
i=i+1;
done” | /bin/sh &
pid_array[$i]=$! ;
done
for i in “${pid_array[@]}”; do
echo ‘kill ‘ $i ‘;’;
done
拿我的测试环境测一下,是一台4C,16G的IBM X3650PC服务器。
看一下CPU个数:
[root@xlt1 tmp]# cat /proc/cpuinfo|grep processor|wc -l
4
先看一下killcpu.sh脚本执行前CPU利用率
[root@xlt1 tmp]# sar -u 2 10
Linux 2.6.18-238.el5 (xlt1) 03/26/2014
02:31:22 PM CPU %user %nice %system %iowait %steal %idle
02:31:24 PM all 0.88 0.63 5.51 11.89 0.00 81.10
02:31:26 PM all 0.25 0.00 0.37 0.75 0.00 98.63
02:31:28 PM all 0.00 0.00 0.13 0.00 0.00 99.87
02:31:30 PM all 0.50 0.12 0.87 0.12 0.00 98.38
02:31:32 PM all 0.25 0.00 0.38 1.00 0.00 98.38
02:31:34 PM all 0.00 0.00 0.13 0.13 0.00 99.75
02:31:36 PM all 0.25 0.00 0.37 0.75 0.00 98.63
02:31:38 PM all 0.12 0.00 0.25 0.00 0.00 99.63
02:31:40 PM all 0.12 0.00 0.37 0.00 0.00 99.50
02:31:42 PM all 0.13 0.00 0.25 3.13 0.00 96.50
Average: all 0.25 0.07 0.86 1.77 0.00 97.04
可以看到CPU很闲,基本无负载。
执行killcpu.sh脚本,占3颗CPU,目标CPU利用率为75%左右。
[root@xlt1 tmp]# ./killcpu.sh 3
kill 22304 ;
kill 22306 ;
kill 22308 ;
看一下此时CPU利用率。
[root@xlt1 tmp]# sar -u 2 10
Linux 2.6.18-238.el5 (xlt1) 03/26/2014
02:32:07 PM CPU %user %nice %system %iowait %steal %idle
02:32:09 PM all 75.09 0.00 0.00 0.00 0.00 24.91
02:32:11 PM all 75.62 0.00 2.12 1.75 0.00 20.50
02:32:13 PM all 75.12 0.00 0.12 0.12 0.00 24.62
02:32:15 PM all 75.00 0.00 1.50 0.00 0.00 23.50
02:32:17 PM all 75.03 0.00 0.25 0.00 0.00 24.72
02:32:19 PM all 75.00 0.00 3.38 0.00 0.00 21.62
02:32:21 PM all 74.91 0.25 24.84 0.00 0.00 0.00
02:32:23 PM all 73.25 0.00 26.75 0.00 0.00 0.00
02:32:25 PM all 74.25 0.00 25.75 0.00 0.00 0.00
02:32:27 PM all 74.91 0.00 23.72 0.00 0.00 1.37
Average: all 74.82 0.02 10.85 0.19 0.00 14.12
可以看到CPU利用率已经75%左右了。
杀掉脚本进程:
[root@xlt1 tmp]# kill 22304 ;
[root@xlt1 tmp]# kill 22306 ;
[root@xlt1 tmp]# kill 22308 ;
看一下此时CPU利用率。
[root@xlt1 tmp]# sar -u 2 10
Linux 2.6.18-238.el5 (xlt1) 03/26/2014
02:33:51 PM CPU %user %nice %system %iowait %steal %idle
02:33:53 PM all 0.12 0.00 0.37 0.25 0.00 99.25
02:33:55 PM all 1.00 0.00 1.37 10.24 0.00 87.39
02:33:57 PM all 0.12 0.00 0.37 1.00 0.00 98.50
02:33:59 PM all 0.12 0.00 0.25 1.12 0.00 98.50
02:34:01 PM all 0.00 0.12 0.25 0.25 0.00 99.38
02:34:03 PM all 0.12 0.00 0.25 0.87 0.00 98.75
02:34:05 PM all 0.12 0.00 0.12 0.00 0.00 99.75
02:34:07 PM all 0.25 0.00 0.62 1.00 0.00 98.13
02:34:09 PM all 0.12 1.12 11.12 0.00 0.00 87.62
02:34:11 PM all 0.00 1.88 20.38 0.88 0.00 76.88
Average: all 0.20 0.31 3.51 1.56 0.00 94.42
可以看到CPU利用率已经恢复最初状态。
这从另一个层面说明,以扩CPU、内存系统资源的方式来解决应用的问题,一定程度只是治标。
只有应用已经很优化,扩系统资源才是必要的、有价值的。
近期评论