一、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命令安装的更多相关文章

  1. Linux stress 命令

    stress 命令主要用来模拟系统负载较高时的场景,本文介绍其基本用法.文中 demo 的演示环境为 ubuntu 18.04. 基本语法 语法格式:stress <options> 常用 ...

  2. Linux系统yum命令安装软件时保留(下载)rpm包 -- 转载

    昨天在部署zabbix监控的时候,遇到一个问题:监控服务器处于无外网状态,在线安装不可用.而某些依赖包度娘或谷姐搜索起来也挺呛人的!于是想到一个办法,利用有外网的服务器的yum命令来安装这些软件,并自 ...

  3. Diskpart命令安装系统小结

    <diskpart命令安装系统小结> 今天给同学安装系统,win8改win7.同学是预装了win8的联想y480,分区表采用的是GPT格式,捣鼓了半天才知道.GPT格式是新式的分区格式,相 ...

  4. CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”

    刚安装完CentOS,使用yum命令安装一些常用的软件,使用如下命令:yum –y install gcc. 提示如下错误信息: Loaded plugins: fastestmirror, refr ...

  5. MAC中通过gem命令安装compass

    在MAC中通过gem命令安装compass时会出异常,原因是compass版本更新了,一些运行时所用到的依赖软件的版本没能得到更新,故而出现错误.例如,用以下命令安装compass: $ gem in ...

  6. 【转】CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”

    源自:http://www.cnblogs.com/yangbingqi/p/3328610.html 刚安装完CentOS,使用yum命令安装一些常用的软件,使用如下命令:yum grouplist ...

  7. CentOS 使用yum命令安装Java SDK(openjdk)

    CentOS 6.X 和 5.X 自带有OpenJDK runtime environment  (openjdk).它是一个在linux上实现开源的java 平台.CentOS  yum 命令 安装 ...

  8. adb命令安装apk 来学习吧

    1.将需要安装的apk放在platform-tools下 2.将手机和电脑连接,在cmd中输入 adb devices查看 3.使用adb命令安装apk,在cmd中输入:adb install apk ...

  9. Screen命令安装使用教程

    在安装lnmp之前,我们一般先运行一下Screen程序,因为screen好像一个容器一样,把lnmp的安装过程保护了起来.以CentOS中安装lnmp为例,程序下载.编译都需要比较长的时间,如果中途遇 ...

随机推荐

  1. navicat for mysql连接数据库报错1251

    使用Navicat for mysql 连接数据库,报如下错误 原因:数据库安装的是8.0版本,新的mysql采用了新的加密方式,导致连接失败 解决办法:数据库执行如下命令 改密码加密方式:用管理员身 ...

  2. 干货分享,FPGA硬件系统的设计技巧

    PGA的硬件设计不同于DSP和ARM系统,比较灵活和自由.只要设计好专用管脚的电路,通用I/O的连接可以自己定义.因此,FPGA的电路设计中会有一些特殊的技巧可以参考. 1. FPGA管脚兼容性设计 ...

  3. js 输出语句document.write()及动态改变元素中内容innerHTML的使用

    操作 HTML 元素 如需从 JavaScript 访问某个 HTML 元素,您可以使用 document.getElementById(id) 方法. 请使用 "id" 属性来标 ...

  4. winEdt打开tex文件报错解决方法

    写论文真的是不断遇到各种困难啊,这个Latex软件就很多,好不容易中个A1区的文章,期刊说更新了新的模板就下载了,忽然发现打开有reading error,看不到一点内容,神奇的是竟然可以运行.这样的 ...

  5. cf1172E Nauuo and ODT(LCT)

    首先可以转化问题,变为对每种颜色分别考虑不含该颜色的简单路径条数.然后把不是当前颜色的点视为白色,是当前颜色的点视为黑色,显然路径数量是每个白色连通块大小的平方和,然后题目变为:黑白两色的树,单点翻转 ...

  6. redis day03 下

    事务 能够有回退状态 事务命令 安命令执行没问题,redis是弱事务型 nulti incr n1   -->QUEUED(返回仅队列了) EXEC -->返回结果 pipeline 流水 ...

  7. POJ-1679 The Unique MST(次小生成树、判断最小生成树是否唯一)

    http://poj.org/problem?id=1679 Description Given a connected undirected graph, tell if its minimum s ...

  8. 2019ICPC 上海网络赛 L. Digit sum(二维树状数组+区间求和)

    https://nanti.jisuanke.com/t/41422 题目大意: 给出n和b,求1到n,各数在b进制下各位数之和的总和. 直接暴力模拟,TLE.. 没想到是要打表...还是太菜了. # ...

  9. 600E - Lomsat gelral(找子树多颜色问题)(入门)

    题:https://codeforces.com/problemset/problem/600/E 题意:一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和 ...

  10. 题解 P3061 【[USACO12DEC]疯狂的栅栏Crazy Fences】

    这道题的思想是首先我们找到所有的栅栏围成的空间,然后求每一只奶牛在哪几个栅栏空间之中,最后比较他们在的所有栅栏空间-----如果奶牛a和b同时在空间c,d和e内,那么他们一定在同一群中. 测试围栏的方 ...