使用 http_load 测试服务器的负载

http_load是一款linux,OSX下的性能检测工具,通过简单的参数就能测试Web服务器的负载和性能.对于日常的代码自测已经足够了.

安装

这个很简单,OSX下只需要:

    brew install http_load

通过 brew 就可以直接装了.

ubuntu 下需要下载源码自己编译:

    wget http://acme.com/software/http_load/http_load-09Mar2016.tar.gz
    tar zxvf http_load-09Mar2016.tar.gz
    cd http_load-09Mar2016
    make && make install

前提是需要安装 wgetgcc.

编译完成以后就可以再当前文件夹下看到 http_load 文件了,为了方便我们可以:

    sudo cp http_load /usr/local/bin/http_load

使用

基本的使用方式如下:

    http_load [参数] [url_file]

url_file文件内容如下

    http://a.com/test1
    http://a.com/test2
    http://a.com/test3
    http://a.com/test4

里面包含你需要访问的url,用回车分割.域名,IP都可以.

参数含义如下

-p (parallels) : 并发的访问进程数 -f (fetches) : 总的访问数 -r (rates) : 每秒的请求数 -s (seconds) : 总的请求时间

通过这四个参数组合,我们就很容易针对性的做一些测试了,比如我们想测试服务器的QPS:

    http_load -r 200 -s 10 url_file

意味着每秒请求200次,总共请求10秒.

或者:

    http_load -p 100 -f 10000 url_file

返回的结果一般如下:

    1301 fetches, 170 max parallel, 383256 bytes, in 10.0006 seconds

    294.586 mean bytes/connection

    130.093 fetches/sec, 38323.5 bytes/sec

    msecs/connect: 0.488161 mean, 5.405 max, 0.138 min

    msecs/first-response: 653.768 mean, 1645.57 max, 0.174 min

    176 bad byte counts

    HTTP response codes:

      code 200 -- 1125

      code 500 -- 168

其中msecs/connect msecs/first-response 的三个数值告诉我们平均响应时间,最大响应时间,最小响应时间(单位是毫秒) 具体区别不太明白,待补充.

最后三行是统计的HTTP状态码,可以大致了解响应的情况.

Comments

comments powered by Disqus