stress命令安装
一、stress(cpu)
stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这些设备运行的用户。
下载地址
http://people.seas.harvard.edu/~apw/stress/
进入到usr/local/bin目录下: #cd /usr/local/src
上传stress压缩包: #rz
解压缩包: #tar -xzpvf stress-1.0.4.tar.gz
进入到已解压的文件夹: #cd stress-1.0.4
输入./configure进行配置 : #./configure
然后进行以下命令输入:
#make
#make check
#make install
最后输入:stress --version 验证是否安装成功
命令参数:
- Usage: stress [OPTION [ARG]] ...
- -?, --help //显示帮助信息
- --version //显示软件版本信息
- -v, --verbose // be verbose
- -q, --quiet // be quiet
- -n, --dry-run //show what would have been done
- -t, --timeout N // timeout after N seconds
- --backoff N // wait factor of N microseconds before work starts
- -c, --cpu N //spawn N workers spinning on sqrt()
- -i, --io N //spawn N workers spinning on sync()
- -m, --vm N //spawn N workers spinning on malloc()/free()
- --vm-bytes B //malloc B bytes per vm worker (default is 256MB)
- --vm-stride B //touch a byte every B bytes (default is )
- --vm-hang N //sleep N secs before free (default none, is inf)
- --vm-keep //redirty memory instead of freeing and reallocating
- -d, --hdd N //spawn N workers spinning on write()/unlink()
- --hdd-bytes B //write B bytes per hdd worker (default is 1GB)
- -?
- --help 显示帮助信息
- --version 显示软件版本信息
- -t secs:
- --timeout secs指定运行多少秒
- --backoff usecs 等待usecs微秒后才开始运行
- -c forks:
- --cpu forks 产生多个处理sqrt()函数的CPU进程
- -m forks
- --vm forks:产生多个处理malloc()内存分配
- -i forks
- --io forks:产生多个处理sync()函数的磁盘I/O进程
- --vm-bytes bytes:指定内存的byte数,默认值是1
- --vm-hang:表示malloc分配的内存多少时间后在free()释放掉
- -d :
- --hdd:写进程,写入固定大小,通过mkstemp()函数写入当前目录
- --hdd-bytes bytes:指定写的byte数,默认1G
- --hdd-noclean:不要将写入随机ascii数据的文件unlink,则写入的文件不删除,会保留在硬盘空间。
>>>>>>安装过程中遇到的坑:
1、yum安装会出现yum源的问题导致安装不成功,如何解决呢?
博客:https://www.cnblogs.com/dadong616/p/5062727.html
2、没有make命令
练习::
1、stress --cpu 1 --timeout 600 分析现象?负载为啥这么高?top命令查看用户进程消耗的cpu过高(stress进程消耗的)
2、stress -i 1 --timeout 600 分析现象?top看负载升高,内核cpu过高? iostat -x stress消耗cpu多,iowait 等待 pidstat -d
3、stress -c 8 --timeout 600
案例:vu增加,tps降低,响应时间增加?
打印tomcat的整体响应时间,再打印接口的处理时间。
tomcat从1秒增加到8秒。
原因最后:线程池的上下文切换导致的线程等待时间过长。
4、sysbench --threads=10 --max-time=300 threads run
cswch自愿上下文切换:进程无法获取资源导致的上下文切换,比如;I/O,内存资源等系统资源不足,就会发生自愿上下文切换。
nvcswch非自愿上下文切换:进程由于时间片已到,被系统强制调度,进而发生的上下文切换 ,比如大量进程抢占cpu。
5、vmstat 默认看的是
pidstat -w 默认看的是进程的上下文切换
pidstat -wt -t参数看线程的上下文切换
6、python3 脚本运行分析
app.py
负载上来,top 定位到磁盘有问题
iostat -x 3 定位到写操作有问题
pidstat -d 中断不可恢复的情况比较多,定位到python进程的写操作有问题
和写操作有关,则和程序里的方法有问题
strace -p pid 跟踪进程 ,可以看到是大量的写操作,往log.txt里写文件导致的
查看代码,分析分析,可以看到代码中的写入大小
分析流程:
负载-cpu-b(中断不可恢复的进程比如io)
负载高-cpu-iowait-io-(中断、上下文切换、读写)-(pidstat -d)定位到某个进程的写-(strace 跟踪进程,定位到写哪个文件)-查看源码,定位到写这个文件的代码块。
7、
8、
stress命令安装的更多相关文章
- Linux stress 命令
stress 命令主要用来模拟系统负载较高时的场景,本文介绍其基本用法.文中 demo 的演示环境为 ubuntu 18.04. 基本语法 语法格式:stress <options> 常用 ...
- Linux系统yum命令安装软件时保留(下载)rpm包 -- 转载
昨天在部署zabbix监控的时候,遇到一个问题:监控服务器处于无外网状态,在线安装不可用.而某些依赖包度娘或谷姐搜索起来也挺呛人的!于是想到一个办法,利用有外网的服务器的yum命令来安装这些软件,并自 ...
- Diskpart命令安装系统小结
<diskpart命令安装系统小结> 今天给同学安装系统,win8改win7.同学是预装了win8的联想y480,分区表采用的是GPT格式,捣鼓了半天才知道.GPT格式是新式的分区格式,相 ...
- CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”
刚安装完CentOS,使用yum命令安装一些常用的软件,使用如下命令:yum –y install gcc. 提示如下错误信息: Loaded plugins: fastestmirror, refr ...
- MAC中通过gem命令安装compass
在MAC中通过gem命令安装compass时会出异常,原因是compass版本更新了,一些运行时所用到的依赖软件的版本没能得到更新,故而出现错误.例如,用以下命令安装compass: $ gem in ...
- 【转】CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”
源自:http://www.cnblogs.com/yangbingqi/p/3328610.html 刚安装完CentOS,使用yum命令安装一些常用的软件,使用如下命令:yum grouplist ...
- CentOS 使用yum命令安装Java SDK(openjdk)
CentOS 6.X 和 5.X 自带有OpenJDK runtime environment (openjdk).它是一个在linux上实现开源的java 平台.CentOS yum 命令 安装 ...
- adb命令安装apk 来学习吧
1.将需要安装的apk放在platform-tools下 2.将手机和电脑连接,在cmd中输入 adb devices查看 3.使用adb命令安装apk,在cmd中输入:adb install apk ...
- Screen命令安装使用教程
在安装lnmp之前,我们一般先运行一下Screen程序,因为screen好像一个容器一样,把lnmp的安装过程保护了起来.以CentOS中安装lnmp为例,程序下载.编译都需要比较长的时间,如果中途遇 ...
随机推荐
- 微信官方小程序示例demo 微信开发者工具打开不显示云开发按钮
如果直接打开官方的demo,微信开发者工具上是不显示云开发按钮的. 是因为默认appid是测试号.要换成一个正式appid就会显示云开发按钮了. 分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默 ...
- DOCKER 学习笔记6 WINDOWS版尝鲜
前言 经过前两节的学习,我们已经可以在Dokcer 环境下部署基本的主流环境有: Springboot 后端 MYSQL 持久化数据 以及Nginx 作为反向代理 虽说服务器上面的也没啥不好,但是毕竟 ...
- matlab 高级
绘图 条形图 x = [1:10]; y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95]; bar(x,y), xlabel('Student'),ylabel( ...
- linux的centos设置静态网络
这个是该自己的网络排至,具体的分析,自己以后再研究 http://www.centoscn.com/CentOS/config/2015/0227/4753.html
- webgis笔记
3.8(02) .特点:由服务端进行数据管理 开源的GO sever WMS/WCS/WTS 1sever/2engine/3database/4standard 扩展的空间数据库,存矢量.栅格.直接 ...
- UML-操作契约总结
1.操作契约属于什么? 属于用例模型 如图: 2.操作契约在那个阶段引入? 在细化阶段,并非初始阶段. 3.哪些需要写操作契约? 1).最复杂的系统操作 2).最微妙的系统操作
- usert
usert类型 不是一个函数,而是一个语言构造器 usert后会不会释放内存 当usert的文件大于2044KB时才会释放内存,否则不释放内存
- JS中的let变量
介绍JS中的let变量: let允许你声明一个作用域被限制在块级中的变量.语句或者表达式.在Function中局部变量推荐使用let变量,避免变量名冲突. 作用域规则 let 声明的变量只在其声明的块 ...
- 2.docker machine 创建 包含 docker 的 linux 虚拟机
1. 启动 从https://github.com/boot2docker/boot2docker/releases下载iso到~/.docker/machine/cache/里 docker-mac ...
- postman测试
Postman接口性能测试 1.从文件中获取参数,然后点击Runner 2.勾选测试用例,配置用例次数.参数文件.返回data等 3.点击run 测试用例 4.查看测试结果 5.测试接口:https: ...