安装
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的计算能力,导致的系统的平均负载很高;