zoukankan      html  css  js  c++  java
  • lLinux 下 Stress 压力测试工具

    作者信息
    邮箱:sijiayong000@163.com
    Q Q:601566386

    Stress是什么

    stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这些设备运行的用户。

    安装

    方式一

    将stress的安装包上传并解压到linux服务器的/usr/local/src路径下,
    执行:tar -xf stress_1.0.1.orig.tar.gz

    进入解压后的stress-1.0.1文件夹,
    输入:./configure

    进行配置,若配置失败,并打印no acceptable c compiler found in path
    则表示无可用的GCC编译环境,输入yum –y install gcc自动下载安装。

    配置完成后,依次输入
    至此,stress就全部安装完成了,在命令行会打印stress安装成功的提示。

    方式二

    需要有epel
    可使用aliyunepel
    执行:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
    可直接使用:yum install stress -y

    使用指南

    首先需建立测试目录,供放置写磁盘的文件。

    stress各主用参数说明(-表示后接一个中划线,--表示后接2个中划线,均可用于stress后接参数,不同表达方式):

    -?
    --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、测试CPU负荷
    输入命令:stress –c 4
    增加4个cpu进程,处理sqrt()函数函数,以提高系统CPU负荷

    2、内存测试
    输入命令:stress –i 4 –vm 10 –vm-bytes 1G –vm-hang 100 –timeout 100s
    新增4个io进程,10个内存分配进程,每次分配大小1G,分配后不释放,测试100S

    3、磁盘I/O测试
    输入命令:stress –d 1 --hdd-bytes 3G
    新增1个写进程,每次写3G文件块

    4、硬盘测试(不删除)
    输入命令:stress –i 1 –d 10 --hdd-bytes 3G –hdd-noclean
    新增1个IO进程,10个写进程,每次写入3G文件块,且不清除,会逐步将硬盘耗尽。

    linux下服务器性能监控

    top监控整体使用情况
    各参数涵义如下:

    load average:当前系统负载的平均值,后面的3个值分别为1分钟、5分钟、15分钟前进程的平均数。一般认为这个数超过CPU数目时,CPU将比较吃力地负载当前系统所包含的进程。

    表示CPU的几个参数:

    • us:用户空间占用CPU百分比
    • sy:内核空间占用CPU百分比
    • ni:用户进程空间内改变过优先级的进程占用CPU百分比
    • id:空闲CPU百分比
    • wa:等待输入输出的cpu时间百分比

    输入top后,按大写P,以CPU占用大小排序,按M,以内存占用大小排序

    从应用程序的角度来看,可用内存=系统free memory+buffers+cached,其中buffers/cached是为了提高文件读取的性能,当应用程序要用到内存的时候,buffer/cached会很快地被回收

    服务器I/O读写负载评估
    先用top查看,wa的值标识I/O等待所占用的CPU时间的百分比,高于30%时I/O压力高。

    再用iostat –x 1 10查看,如果没有该文件,要yum install systat安装。
    查看%util,%idle,如果%util接近100%,说明产生的I/O请求太多,I/0系统已经满负荷,该磁盘可能存在瓶颈,%idle小于70%,I/0压力就比较大了,一般读取速度有较多的等待。

    同时结合vmstat -1命令,查看b参数,表示等待资源的进程数,如等待I/O,内存等,如常时间>1,则要关注。可评估i/o读写负载。

    其他系统日常管理

    • 查看系统的cpu数:cat /proc/cpu info
    • 监控系统状态,查看具体是哪里的压力:vmstat
    • proc列显示进程相关信息
    • r表示运行和等待CPU时间片的进程数,如长期>服务器CPU个数,说明CPU不够用了
    • swap表示内存交换情况
    • 查看内存使用情况:free
    • 查看系统进程:ps aux
    • 打印网络连接状况:netstat –an
    • 打印当前系统启动哪些端口:netstat –lnp
    • 查看磁盘的使用情况和文件系统被挂载的位置:df –lh
    技术男一枚,喜欢做技术分享,把学习的过程,以及遇到问题的解决过程都愿意分享给大家,博客中如有不足,请留言或者联系博主,感谢。 邮箱: sijiayong000@163.com Q Q: 601566386
  • 相关阅读:
    POJ1125 Stockbroker Grapevine(spfa枚举)
    20160402javaweb 开发模式
    20160331javaweb之JSP 标签技术
    20160331javaweb之JSP include 指令&&九大隐式对象
    20160330javaweb之session 小练习
    20160329javaweb之JSP -session入门
    20160329javaweb之JSP -cookie入门
    20160328 javaweb Cookie 小练习
    20160327javaweb 之JSP入门
    HttpServlet was not found on the Java
  • 原文地址:https://www.cnblogs.com/winstom/p/8886542.html
Copyright © 2011-2022 走看看