stress-Linux系统压力测试工具使用及系统负载很高的几种场景测试

安装

yum install stress stress-ng -y

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

常用选项

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

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

-i,--io:表示调用sync(),它表示通过系统调用 sync() 来模拟 I/O 的问题;

但这种方法实际上并不可靠,因为 sync() 的本意是刷新内存缓冲区的数据到磁盘中,以确保同步。

如果缓冲区内本来就没多少数据,那读写到磁盘中的数据也就不多,也就没法产生 I/O 压力。

这一点,在使用 SSD 磁盘的环境中尤为明显,很可能你的 iowait 总是 0,却单纯因为大量的系统调用,导致了系统CPU使用率 sys 升高。

这种情况,推荐使用 stress-ng 来代替 stress。

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

使用2颗CPU
[[email protected] ~]#   stress --cpu 2 --timeout 600

[[email protected] ~]# uptime
10:33:44 up 28 min,  4 users,  load average: 1.99, 1.39, 0.81

[[email protected] ~]# 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

[[email protected] 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)
[[email protected] ~]# stress-ng -i 4 --hdd 1 --timeout 600

[[email protected] ~]# uptime
11:11:12 up  1:05,  4 users,  load average: 4.35, 4.11, 3.65

[[email protected] ~]# 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

[[email protected] sysstat-12.1.5]# pidstat -u 5

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

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

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

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

[[email protected] ~]# 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

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

场景四:单进程多线程(大量线程造成上下文切换,从而造成系统负载升高)

模拟10个线程,对系统进行基准测试
[[email protected] ~]# sysbench --threads=10 --time=300 threads run

可以看到平均1分钟的系统再升高
[[email protected] ~]# uptime
16:43:41 up  6:38,  4 users,  load average: 4.82, 2.10, 0.84

可以看到sys(内核态)对CPU的使用率比较高,iowait无(表示没有进程间的争用)
[[email protected] ~]# mpstat -P ALL 5
Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all   23.92    0.00   68.92    0.00    0.00    0.00    0.00    0.00    0.00    7.16
Average:       0   24.11    0.00   68.77    0.00    0.00    0.00    0.00    0.00    0.00    7.12
Average:       1   24.02    0.00   68.41    0.00    0.00    0.00    0.00    0.00    0.00    7.56
Average:       2   23.74    0.00   69.40    0.00    0.00    0.01    0.00    0.00    0.00    6.85
Average:       3   23.79    0.00   69.10    0.00    0.00    0.00    0.00    0.00    0.00    7.1
可以看到无进程间的上下文切换(默认是进程间的)
[[email protected] ~]# pidstat -w  3
04:45:46 PM   UID       PID   cswch/s nvcswch/s  Command
04:45:49 PM     0         9      2.67      0.00  rcu_sched
04:45:49 PM     0        11      0.33      0.00  watchdog/0
04:45:49 PM     0        12      0.33      0.00  watchdog/1
04:45:49 PM     0        14      0.67      0.00  ksoftirqd/1
04:45:49 PM     0        17      0.33      0.00  watchdog/2
04:45:49 PM     0        22      0.33      0.00  watchdog/3
04:45:49 PM     0       556     19.67      0.00  xfsaild/dm-0
04:45:49 PM     0     21287      0.33      0.00  sshd
04:45:49 PM     0     26834      1.00      0.00  kworker/u256:0
04:45:49 PM     0     30955      1.00      0.00  kworker/2:2
04:45:49 PM     0     31207      1.67      0.00  kworker/0:2
04:45:49 PM     0     31778      2.00      0.00  kworker/3:1
04:45:49 PM     0     32262      0.33      0.00  pidstat
04:45:49 PM     0     32263      1.00      0.00  kworker/1:1
04:45:49 PM     0     32350      0.33      0.00  kworker/3:0

可以看到存在大量的非自愿上下文切换(表示线程间争用引起的上下文切换,造成系统负载升高)
[[email protected] ~]# pidstat -w -t 3
04:48:35 PM   UID      TGID       TID   cswch/s nvcswch/s  Command
04:48:41 PM     0     32597         -      1.67      0.33  sysbench
04:48:41 PM     0         -     32597      1.67      0.33  |__sysbench
04:48:41 PM     0         -     32598   8932.67  63606.33  |__sysbench
04:48:41 PM     0         -     32599  10554.00  52275.33  |__sysbench
04:48:41 PM     0         -     32600  10941.00  49976.67  |__sysbench
04:48:41 PM     0         -     32601   9393.67  50796.33  |__sysbench
04:48:41 PM     0         -     32602  10196.67  50815.33  |__sysbench
04:48:41 PM     0         -     32603   9538.67  54755.00  |__sysbench
04:48:41 PM     0         -     32604  10112.33  50476.67  |__sysbench
04:48:41 PM     0         -     32605   9135.67  53922.00  |__sysbench
04:48:41 PM     0         -     32606  10506.33  55677.00  |__sysbench
04:48:41 PM     0         -     32607  10346.33  55691.67  |__sysbench


原文地址:https://www.cnblogs.com/liujunjun/p/12248041.html

时间: 2024-08-29 10:14:25

stress-Linux系统压力测试工具使用及系统负载很高的几种场景测试的相关文章

Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 下载地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz 安装#tar zxvf http_load-12mar2006.tar.gz#cd http_load-12mar

九款Web服务器性能压力测试工具

一.http_load 程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求.下载地址:http_load-12mar2006.tar.gz安装很简单 #tar zxvf http_load-12mar2006.tar.gz#cd http_load-12mar2006#make && make install 基本用法:

[转]web服务器压力测试工具

http_load学习心得: 测试网站每秒所能承受的平均访问量(吞吐量) http_load -parallel 5 -fetches 1000 urls.txt这段命令行是同时使用5个进程,随机访问urls.txt中的网址列表,总共访问1000次.运行之后的结果: 1000 fetches, 5 max parallel, 6e+06 bytes, in 58.1026 seconds6000 mean bytes/connection17.2109 fetches/sec, 103266 b

​Web压力测试工具使用教程

Web压力测试工具:http_load.webbench.ab.Siege使用教程 前言:常在网络飘,哪有不挨刀?做网站的站长说不准哪天得罪了XX人,二话不说直接操着DDOS就上来搞你了,黑不了你,哥就D死你,遇到这样的无赖,还真没办法,因此经常性的给自己的网站做做压力测试,看看服务器的承载能力是很有必要的一件事. 一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单

Linux系统IO分析工具之iotop参数详解(查看IO占用)

这篇文章主要介绍了Linux系统IO分析工具之iotop参数详解(查看IO占用),本文着重注解了iotop工具的参数,以及可操作命令,需要的朋友可以参考下 简介: iotop – simple top-like I/O monitoriotop是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息(requires 2.6.20 or later) 安装: 复制代码 代码如下: yum -y install iotop 用法: 复制代码 代码如下: iotop

http压力测试工具

HTTP 压力测试工具 一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 下载地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz安装很简单#tar zxvf http_load-12mar2006.tar.gz#c

Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程

分类: Web架构 2010-10-04 16:07 371人阅读 评论(0) 收藏 举报 测试工具web服务attributestransactionsauthenticationconcurrency 转:http://blog.licess.org/http_load-webbench-ab-siege/ 一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的

Web服务器性能压力测试工具http_load、webbench、ab、Siege使用教程

Web服务器性能压力测试工具http_load.webbench.ab.Siege使用教程 作者: feng 日期: 2012/07/25 发表评论 (0) 查看评论 一.http_load 程序非常小,解压后也不到100K,http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 官网:http://www.acme.com/software/http_loa

[转]Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程

原文链接:http://www.vpser.net/opt/webserver-test.html 2009年04月13日 下午 | 作者:VPS侦探 一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 下载地址:http://soft.vpser.net/test/http_load/http_