• 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 4096)
    
         --vm-hang N      //sleep N secs before free (default none, 0 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、

  • 相关阅读:
    第二轮冲刺-Runner站立会议06
    第二轮冲刺-Runner站立会议05
    第二轮冲刺-Runner站立会议04
    找水王续
    第二轮冲刺-Runner站立会议03
    第二轮冲刺-Runner站立会议02
    用户故事与敏捷开发方法笔记05
    软件需求与分析课堂讨论1
    16秋进度条3
    用户故事与敏捷开发方法笔记04
  • 原文地址:https://www.cnblogs.com/wuzm/p/11096276.html
Copyright © 2020-2023  润新知