• 三种web性能压力测试工具


    三种web性能压力测试工具http_load webbench ab小结

    题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种

    http_load

    下载地址:http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz

    程序非常小,解压后也不到100K 居家旅行携带方便 呵呵

    http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。可以可以测试HTTPS类的网站请求。

    命令格式:http_load  -p 并发访问进程数  -s 访问时间  需要访问的URL文件

    例如:

    引用

    http_load -p 30 -s 60  urllist.txt

    准备URL文件:tst.list,文件格式是每行一个URL,URL最好超过50-100个测试效果比较好,另外,测试结果中主要的指标是fetches/sec 这个选项,即服务器每秒能够响应的查询次数,用这个指标来衡量性能。似乎比 apache的ab准确率要高一些,也更有说服力一些。

    官方的例子:

    引用

    % ./http_load -rate 10 -seconds 60urllist.txt

    49 fetches, 4 max parallel, 289884 bytes,in 10.0148 seconds

    5916 mean bytes/connection

    4.89274 fetches/sec, 28945.5 bytes/sec

    msecs/connect: 28.8932 mean, 44.243 max,24.488 min

    msecs/first-response: 63.5362 mean, 81.624max, 57.803 min

    4.89274 fetches/sec 这个值得就是说服务器每秒能够响应的查询次数为4.8左右

    这个值得是根据 49 fetches / 10.0148 seconds 秒计算出来的

    webbench

    webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。下载地址可以到baidu google搜,我这里给出一个

    下载地址:http://cid-9601b7b7f2063d42.skyd ... webbench-1.5.tar.gz

    这个程序更小,解压后不到50K,呵呵

    安装非常简单

    #tar zxvf webbench-1.5.tar.gz

    #cd webbench-1.5

    #make && make install

    会在当前目录生成webbench可执行文件,直接可以使用了

    用法:

    webbench -c 并发数 -t 运行测试时间 URL

    如:

    webbench -c 5000 -t 120http://www.askwan.com

    ab

    ab是apache自带的一款功能强大的测试工具

    安装了apache一般就自带了,

    用法可以查看它的说明

    引用

    $ ./ab

    ./ab: wrong number of arguments

    Usage: ./ab [options][http://]hostname[:port]/path

    Options are:

    -n requests Number of requests to perform

    -c concurrency Number of multiple requeststo make

    -t timelimit Seconds to max. wait forresponses

    -p postfile File containing data to POST

    -T content-type Content-type header forPOSTing

    -v verbosity How much troubleshooting infoto print

    -w Print out results in HTML tables

    -i Use HEAD instead of GET

    -x attributes String to insert as tableattributes

    -y attributes String to insert as trattributes

    -z attributes String to insert as td or thattributes

    -C attribute Add cookie, eg. 'Apache=1234.(repeatable)

    -H attribute Add Arbitrary header line, eg.'Accept-Encoding: gzip'

    Inserted after all normal header lines.(repeatable)

    -A attribute Add Basic WWW Authentication,the attributes

    are a colon separated username andpassword.

    -P attribute Add Basic ProxyAuthentication, the attributes

    are a colon separated username andpassword.

    -X proxy:port Proxyserver and port numberto use

    -V Print version number and exit

    -k Use HTTP KeepAlive feature

    -d Do not show percentiles served table.

    -S Do not show confidence estimators andwarnings.

    -g filename Output collected data tognuplot format file.

    -e filename Output CSV file withpercentages served

    -h Display usage information (this message)

    参数众多,一般我们用到的是-n 和-c

    例如:

    ./ab -c 1000 -n 100http://www.askwan.com/index.PHP

    这个表示同时处理1000个请求并运行100次index.php文件.

    nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能

    一、下载nmon工具和nmon****yser

    Nmon下载:

    位置:可从IBM Wiki上下载

    http://www-941.haw.ibm.com/colla ...play/WikiPtype/nmon

    例如我测试的系统是AIX5.3,那么就可以下载nmon4aix12e.zip ,下载后我们可以看到压缩包里是一些文件,

    其实nmon就是shell脚本,nmon文件运行时调用其他的文件,生成性能数据,这个工具运行时也是通过执行nmon脚本接受参数。

    Nmon****yser下载:

    位置:可从可从IBM Wiki上下载

    http://www-941.haw.ibm.com/colla ...iptype/nmon****yser

    二、上传nomn工具到服务器上&修改属性

    将nmon4aix12e.zip里的文件ftp到服务器上,目录任意,最好自己新建一个目录,然后将文件的属性修改为可执行的:chmod 755 nmon_aix53

    三、在服务器上运行nmon脚本

    进入/home/nmon目录

    cd /home/nmon

    运行nmon脚本

    ./nmon -fT -s 30 -c 120

    其中30表示每隔30秒nmon取一次系统性能数据,120表示取120次;

    这样nmon将会在运行开始算起连续取得30sX120=60分钟,可根据实际需要时间调整;

    当运行以上命令后该目录下会生成一个.nmon文件,该文件会根据间隔时间被写入性能数据,当一段时间后再查看该文件,文件字节变大;

    四、利用nmon****yser分析.nmon文件

    当测试结束的同时ftp到服务器上将.nmon文件get下来,

    打开nmon_****yser.zip 包下的nmon ****yser v338.xls 文件,点击****yse nomndata按钮,选择之前get来下的.nmon文件。

    (如果报告以下宏的安全级别太高错误,则在“工具 -- 宏 --安全性”里把级别调低,然后重新打开 nmon ****yser v338.xls 文件)

    待分析结束后会生成性能分析结果文件(文件格式为.xls,其中包括CPU,IO,内存等性能分析报告)。

    分析结果中有很多数据和图形,简要介绍主要的性能参数图像

    4.1 系统汇总(对应excel标签的‘SYS_SUMM’)

    蓝线为cpu占有率变化情况;

    粉线为磁盘IO的变化情况;

    4.2磁盘读写情况汇总(对应excel标签的‘DISK_SUMM’)

    蓝色为磁盘读的速率KB/sec

    紫色为磁盘写的速率KB/sec

    4.3内存情况汇总(对应excel标签的‘MEM’)

    曲线表示内存剩余量(MB)

    分析数据得到的报告文件(.xls)中包含很多性能分析结果数据,根据自己的需要查看。

    五、nmon运行本身就消耗系统资源的;

    另外如果取到.nmon文件后确定不再需要nmon继续收集信息则应kill掉nmon;

    命令:

       1.ps -A | grep nmon #得到pid

       2.kill -9 pid

    六、定时任务

    在很多情况下,我们需要知道在一个连续的时间段里,机器的性能情况。例如,记录每天的机器性能状况,步骤如下:

    建nmon目录/nmon,在目录下建两个子目录/nmon/bin和/nmon/data目录,

    把下载下来的nmon程序放到bin目录下,aix下的nmon可执行文件名称可能为:

    nmon_aix53

    在/nmon/bin目录下建一个脚本文件nmon.sh,内容如下:

    #!/bin/ksh

    BINPATH=`dirname $0`

    NPATH=$BINPATH/../data

    $BINPATH/nmon_aix53 -s300 -c288 -f -m$NPATH

    -s300表示每300秒采集一次数据,

    -c288表示采集288次,300*288=86400秒,刚好是1天的数据,这样运行一次这个程序就会生成一个一天的数据文件,

    -m$NPATH表示生成的数据文件的路径

    -f表示生成的数据文件名中有时间

    然后在crontab 中增加一条记录:

    0 0 * * * /home/sun/nmon/bin/nmon.sh>/dev/null 2>&1

    这样每天凌晨都会运行nmon,这样每天都会生成一个nmon文件。

    生成的文件名为:myhost _090507_0000.nmon,“myhost”是这台主机的hostname。

    把生成的数据文件传到Windows机器上,用Excel打开分析工具nmon ****yser v33A.xls

    然后再点Excel文件中的“****yze nmon data”按钮,选取那个性能数据文件

    这样就会生成一个分析后的结果文件:myhost_090507_0000.nmon.xls

    用Excel打开生成的Excel文件就可以看到结果了。

        *CPU 使用率

        *内存使用情况

        *内核统计信息和运行队列信息

        *磁盘 I/O 速度、传输和读/写比率

        *文件系统中的可用空间

        *磁盘适配器

        *网络 I/O 速度、传输和读/写比率

        *页面空间和页面速度

        *CPU 和 AIX 规范

        *消耗资源最多的进程

        *IBM HTTP Web 缓存

        *用户自定义的磁盘组

        *计算机详细信息和资源

        *异步 I/O,仅适用于 AIX

        *工作负载管理器 (WLM),仅适用于 AIX

        *IBM TotalStorage® Enterprise Storage Server® (ESS) 磁盘,仅适用于 AIX

        *网络文件系统 (NFS)

        *动态 LPAR (DLPAR) 更改,仅适用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower

  • 相关阅读:
    Python基础总结之第三天开始重新认识‘字符串’(新手可相互督促)
    Python基础总结之第二天从变量开始(新手可相互督促)
    Python基础总结之第一天(新手可相互督促)
    简析 Golang IO 包
    简析 Golang net/http 包
    Elasticsearch Query DSL 语言介绍
    Golang Context 包详解
    解读 kubernetes client-go 官方 examples
    ACM学习之路___HDU 1385(带路径保存的 Floyd)
    ACM学习之路___HDU 2066 一个人的旅行
  • 原文地址:https://www.cnblogs.com/yzycoder/p/6669783.html
Copyright © 2020-2023  润新知