安装

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

linux分区压力测试,stress-Linux系统压力测试工具使用及系统负载很高的几种场景测试...相关推荐

  1. dnscat使用——整体感觉这个工具不完善,失败率很高,传文件时候没有完整性校验,我自己测试时通过域名转发失败,可能是其特征过于明显导致...

    git clone https://github.com/iagox86/nbtool make 然后就可以按照下面的官方说明进行操作了. 我的感受:整体感觉这个工具不完善,失败率很高,传文件时候没有 ...

  2. centos7 gam_server进程导致CPU使用率100%,系统负载很高

    现象 gam_server的进程占用吃满cpu,导致系统负载很高,top命令卡死 作用 gam_server是gamin的二进制文件,作用是文件交替监控 方案 找到最高的进程PID top是Linux ...

  3. linux分区从1开始,Linux 学习笔记 1 使用最小的系统,从分区安装系统开始

    我们常用的linux系统在安装过程中大多都省略了对系统进行分区的操作,以至于后期,不了解什么是分区以及分区当中最基本的一些概念, 我们不说最细的知识,只求了解这个过程,那直接步入正题,开始第一节的学习 ...

  4. linux分区概念理解,在linux安装中的分区概念(转)

    在linux安装中的分区概念(转)[@more@] 首先我们需要知道,硬盘分区的存在,是由硬盘的物理特性决定的,并不会因为不同的操作系统而有所改变. 请您把一块硬盘想象为一本书--即便您不喜欢读书,您 ...

  5. linux分区文件 pe,关于linux的磁盘和分区的操作(一)

    由于我装的linux(centos)在虚拟机里,开始分的磁盘空间太小,我就想添加一块新的磁盘,顺便学习学习linux的磁盘操作,下面先贴点关于linux分区的知识 分区概念首先我们需要知道,硬盘分区的 ...

  6. linux分区命名规则,《linux就该这么学》第七节课:文件的各种权限以及linux分区命名规则...

    笔记 (借鉴请改动) 5.3:文件特殊权限 SUID  临时拥有文件所有者的权限(基本上只是执行权限) SGID  临时拥有文件所有组的权限,在目录中创建文件自动继承该目录的用户组. SBIT  粘滞 ...

  7. Linux分区大师,找到了linux分区顺序错乱修复方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我之前安装ARCH时 因为自带的CFDISK工具太烂 使用了主流的FDISK和PARTED 都远远不如DISKPART满意 功能弱不说 最重要的就是莫名奇 ...

  8. 红旗linux分区方案有,红旗Linux分区全攻略

    红旗Linux分区全攻略 发布时间:2005-05-24 00:17:35来源:红联作者:thej 一. 环境 一个全新的未经处理过的硬盘,一张红旗4.0安装光盘.我们要在这个硬盘上分成两个分区,一个 ...

  9. xp linux双系统引导修复工具下载,双系统引导修复工具下载

    双系统引导修复工具是一款可以帮助你的电脑进行双系统引导修复的系统软件,当你安装两个系统的时候其中一个系统出现问题的时候就可以使用它来修复了,非常方便,还能把不用的系统删掉,需要的朋友快来当易网下载使用 ...

最新文章

  1. 这是2018年的第一场AI生态论坛,比以往来得更早一些
  2. js 原型prototype继承模式
  3. error C2504: “XXXXXXX”: 未定义基类
  4. HDU-4417 Super Mario
  5. js控制页面刷新大全
  6. 千万别让海底捞知道你的生日
  7. (5)【整合】基于机器学习的酒店评论文本倾向性分析
  8. android 播放器 直播,通过android中的mediaplayer直播
  9. php 5的手册,本手册中所涉及的 PHP 版本 - PHP 5 中文文档
  10. 记录一个Markdown编写的接口文档模版
  11. matlab将日线编成周线,通达信公式日线10周线调用,请教通达信日线数据上引用周线数据需要用到的函数和方法...
  12. excel将内容粘贴到筛选后的可见单元格
  13. 小米路由器 mini 刷 Padavan 详细教程
  14. MOS管的finger和multiplier
  15. 如果感觉没有动力或是心情很失落,那就听听战歌吧!(可免费下载)
  16. 算术分解定理取根号的注意点
  17. .locked勒索病毒来势汹汹该怎么办?
  18. 自己动手搭建Fabric网络,修改当前工作目录名之后出现的错误
  19. 推荐两个长宽数据互换函数pivot_longer和pivot_wider
  20. greensock下载_GreenSock MorphSVGPlugin

热门文章

  1. Centos7下配置安装mysql5.5主从复制(一主两从)
  2. DWR实现服务器端向客户端推送消息
  3. 繁体中文转换为简体中文的PHP类
  4. 在开启bin-log日志下Mysql报错
  5. 一些常用算法 练手的的代码
  6. sql server的跨库查询(简单实现)
  7. 03-06 APP-UI自动化测试-等待方式
  8. 02-09 Python库-PyMySQL-连接数据库
  9. python把某列改为日期格式_如何更改整列的日期格式?
  10. 前端 input怎么显示null_前端架构 101(二): MVC 初探