使用siege进行web压力测试

  由于最近公司线上node项目出一些不稳定的状况,考虑在这方面能不能作进一步的优化,既然要作优化首先要知道问题出在哪里?node

由于暂没法定位是node层问题仍是api层出现问题,因为在开发环境小并发量程序运行都是很稳定的,后面考虑使用一些压力工具去验证在高并发的时候线上的问题,这里我首选siege来作压力测试。api

一:安装并发

  我这里使用的系统是FreeBSD,包请自行下载:http://download.joedog.org/siege/siege-latest.tar.gzapp

  tar zxvf siege-latest.tar.gz
      cd siege-3.0.9
      ./configure
      make & make install

     很快就安装完毕了socket

 查看一下配置文件高并发

/usr/local/siege/bin/siege -c

CURRENT SIEGE CONFIGURATION
Mozilla/5.0 (unknown-x86_64-freebsd10.0) Siege/3.0.9
Edit the resource file to change the settings.
----------------------------------------------
version: 3.0.9
verbose: true
quiet: false
debug: false
protocol: HTTP/1.1
get method: HEAD
connection: close
concurrent users: 15
time to run: n/a
repetitions: 100
socket timeout: 30
accept-encoding: gzip
delay: 1 sec
internet simulation: false
benchmark mode: false
failures until abort: 1024
named URL: http://matouapp.ymatou.com/forymatouapp/home
URLs file: /etc/urls.txt
logging: true
log file: /var/siege.log
resource file: /root/.siegerc
timestamped output: false
comma separated output: false
allow redirects: true
allow zero byte data: true
allow chunked encoding: true
upload unique files: true工具

2、使用  测试

  参数介绍:

  transactions:处理的请求数

  Availability: 成功率

  Elapsed Time:须要多少时间

  Data transferred :传输了多少字节

   Response time: 响应时间

   Transaction rate:平均每秒完成多少次处理 (表示后台的处理速度)

  Throughput:平均每秒传输速度

  Concurrency:最高并发量

   Successful transactions :成功的处理数
  Failed transactions:失败的处理数
   
  Longest transactions:传输最长的时间

  Shortest transactions:传输最短的时间

 

  50个用户(每次并发量,不是每秒并发量)重复10 共产生 50 *10= 500个请求 (默认:GET)优化

  /usr/local/siege/bin/siege -c 50 -r 10 http://matouapp.ymatou.com/forymatouapp/homeui

  执行结果:

       

相关文章
相关标签/搜索