stress-Linux系统压力测试工具

安装

 yum install stress stress-ng -y

 stess-ng是stress的下一代,功能更加完善

常用选项

 -c,--cpu:代表进程个数(每个进程会占用一个cpu,当超出cpu个数时,进程间会互相争用cpu)

 -i,--io:代表启用io进程的个数

 -t,--timeout:测试时长(超出这个时间后自动退出)

场景一:CPU 密集型进程(使用CPU的进程)

使用2颗CPU
[root@nginx ~]#   stress --cpu 2 --timeout 600

[root@nginx ~]# uptime
10:33:44 up 28 min,  4 users,  load average: 1.99, 1.39, 0.81
 
[root@nginx ~]# mpstat -P ALL 5 1
Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all   50.05    0.00    0.08    0.00    0.00    0.00    0.00    0.00    0.00   49.87
Average:       0    0.07    0.00    0.17    0.00    0.00    0.01    0.00    0.00    0.00   99.75
Average:       1  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
Average:       2  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
Average:       3    0.08    0.00    0.15    0.01    0.00    0.01    0.00    0.00    0.00   99.76

[root@nginx sysstat-12.1.5]# pidstat -u 5

1.通过uptime可以观察到,系统平均负载很高,通过mpstat观察到2个CPU使用率很高,平均负载也很高,而iowait为0,说明进程是CPU密集型的;
2.是由进程使用CPU密集导致系统平均负载变高、CPU使用率变高; 
3.可以通过pidstat查看是哪个进程导致CPU使用率较高

场景二:I/O 密集型进程(等待IO的进程)

对IO进行压测(使用stress观测到的iowait指标可能为0,所以使用stress-ng)
[root@nginx ~]# stress-ng -i 4 --hdd 1 --timeout 600

[root@nginx ~]# uptime
11:11:12 up  1:05,  4 users,  load average: 4.35, 4.11, 3.65
 
[root@nginx ~]# mpstat -P ALL 5
Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all    0.20    0.00   13.04   38.70    0.00    1.33    0.00    0.00    0.00   46.73
Average:       0    0.07    0.00    6.63   40.96    0.00    3.72    0.00    0.00    0.00   48.62
Average:       1    0.19    0.00   20.14   26.77    0.00    0.04    0.00    0.00    0.00   52.85
Average:       2    0.27    0.00   13.81   45.15    0.00    0.88    0.00    0.00    0.00   39.89
Average:       3    0.27    0.00   11.22   42.20    0.00    0.80    0.00    0.00    0.00   45.51

[root@nginx sysstat-12.1.5]# pidstat -u 5

1.可以通过uptime观察到,系统平均负载很高,通过mpstat观察到CPU使用很低,iowait很高,一直在等待IO处理,说明此进程是IO密集型的;
2.是由进程频繁的进行IO操作,导致系统平均负载很高而CPU使用率不高的情况;

场景三:大量进程的场景(等待CPU的进程->进程间会争抢CPU)

模拟16个进程,本机是4核
[root@nginx ~]# stress -c 16 --timeout 600

[root@nginx ~]# uptime
11:23:24 up  1:18,  4 users,  load average: 15.10, 8.98, 6.04

[root@nginx ~]# mpstat -P ALL 5
Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all   99.92    0.00    0.08    0.00    0.00    0.00    0.00    0.00    0.00    0.00
Average:       0   99.87    0.00    0.13    0.00    0.00    0.00    0.00    0.00    0.00    0.00
Average:       1   99.96    0.00    0.04    0.00    0.00    0.00    0.00    0.00    0.00    0.00
Average:       2   99.90    0.00    0.10    0.00    0.00    0.00    0.00    0.00    0.00    0.00
Average:       3   99.93    0.00    0.07    0.00    0.00    0.00    0.00    0.00    0.00    0.00

[root@nginx sysstat-12.1.5]# pidstat -u 5 1
Linux 3.10.0-957.21.3.el7.x86_64 (nginx) 	07/10/2019 	_x86_64_	(4 CPU)

11:23:07 AM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
11:23:12 AM     0     23613   25.15    0.00    0.00   75.25   25.15     1  stress
11:23:12 AM     0     23614   24.95    0.00    0.00   75.45   24.95     0  stress
11:23:12 AM     0     23615   25.15    0.00    0.00   75.25   25.15     0  stress
11:23:12 AM     0     23616   24.95    0.00    0.00   74.65   24.95     0  stress
11:23:12 AM     0     23617   25.15    0.00    0.00   74.85   25.15     1  stress
11:23:12 AM     0     23618   24.75    0.00    0.00   75.25   24.75     1  stress
11:23:12 AM     0     23619   24.75    0.00    0.00   75.85   24.75     2  stress
11:23:12 AM     0     23620   24.55    0.00    0.00   75.65   24.55     2  stress
11:23:12 AM     0     23621   25.35    0.00    0.00   74.85   25.35     3  stress
11:23:12 AM     0     23622   25.35    0.00    0.00   74.45   25.35     3  stress
11:23:12 AM     0     23623   25.15    0.00    0.00   75.65   25.15     1  stress
11:23:12 AM     0     23624   25.35    0.00    0.00   74.45   25.35     3  stress
11:23:12 AM     0     23625   24.55    0.00    0.00   75.45   24.55     2  stress
11:23:12 AM     0     23626   24.95    0.00    0.00   75.45   24.95     0  stress
11:23:12 AM     0     23627   24.75    0.00    0.00   75.65   24.75     3  stress
11:23:12 AM     0     23628   24.55    0.00    0.00   75.05   24.55     2  stress
11:23:12 AM     0     23803    0.20    0.40    0.00    0.80    0.60     2  watch
11:23:12 AM     0     24022    0.00    0.20    0.00    0.00    0.20     2  pidstat

1.通过uptime观察到系统平均负载很高,通过mpstat观察到CPU使用率也很高,iowait为0,说明此进程是CPU密集型的,或者在进行CPU的争用;
2.通过pidstat -u观察到wait指标很高,则说明进程间存在CPU争用的情况,可以判断系统中存在大量的进程在等待使用CPU;
3.大量的进程,超出了CPU的计算能力,导致的系统的平均负载很高;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章