码迷,mamicode.com
首页 > 系统相关 > 详细

Mac压测工具(Siege)记录.md

时间:2018-09-13 10:19:38      阅读:339      评论:0      收藏:0      [点我收藏+]

标签:google   终端   lock   nec   最快   abi   推广   6.4   Fix   

微信活动推广,时常瞬时并发特别高,比如一个百万粉丝的公众号,后台推送一个H5的活动,我们公司的应用在短时间内基本处于不可用的状态,如何保证高并发下的高可用呢?

Mac下安装Siege,作为开发人员可进行简单的模拟高并发,确保服务的可用性,目前容器有Tomcat和IIS,需要分别优化。

一、修改Mac文件描述符限制

在压测开始前,需要确保open files足够大,否则会报Too many open files错误,可以通过ulimit -a查看,默认是256。
使用ulimit -n 10000可以修改该值,不过这种修改并不是永久的,关闭终端会话,又会恢复回来。

技术分享图片

二、ab

Mac默认预装了Apache,ab是Apache自带的压力测试工具,但是并发数有限,并发数一大就会报错Connection reset by peer

使用方法:ab -c 并发数 -n 请求数 URL

三、siege

tar -xvf siege-latest.tar.gz
cd siege-4.0.2/
./configure 
make
make install
  • 查看配置(可查看配置文件位置):siege -Csiege --config

  • 修改配置:/Users/vipinchan/.siege/siege.conf

  • 使用方法:siege -c 并发数 -t 运行测试时间 URL
    这里要注意的是-t后面的时间要带单位,s表示秒,如果不带,就是分钟。
    结果分析:
Transactions:               2755 hits
Availability:              70.84 % // 可用率,用100%减去可用率就可以得到错误率
Elapsed time:              26.47 secs
Data transferred:           0.56 MB
Response time:              4.85 secs // 响应时间
Transaction rate:         104.08 trans/sec // web服务器每秒处理的请求数量
Throughput:             0.02 MB/sec // web服务器每秒发送的数据容量
Concurrency:              505.04
Successful transactions:        2755
Failed transactions:            1134
Longest transaction:           16.47
Shortest transaction:           3.06
  • 两种模式:default 和 benchmark

    在default模式下,模拟用户在发出一个请求后,默认会延迟1秒再发出下一个请求。延迟时间可以在配置文件中修改。default模式适用于负载测试(load testing)。

    在benchmark模式下,模拟用户的请求没有延迟。在服务器和网络带宽允许的条件下,模拟用户会以最快的速度发出下一个请求。我们可以在命令中加入-b 指定siege以benchmark模式运行。

  • 压测命令
常用参数
  -c,并发用户,默认为10
  -r, 运行测试次数。
  -t, 测试时间
核心参数
  -d,建议配置为“1”,每个请求前的随机延迟
  -i,随机点击URL。
  -f,选择一个特定的URLS FILE。
  -b,暴力测试,无延迟,查看某个压力下,资源的变化情况

压测控制参数
  -q,关闭并禁止输出。
  -l,--log [= FILE] LOG到FILE。如果没有指定FILE,则使用默认值:PREFIX/var/siege.log

定制化参数
  -H,--header =“text”添加一个头来请求(可以是很多)
  -A,--user-agent =“text”请求中设置用户代理
  -T,--content-type =“text”在请求中设置Content-Type
  • 常用命令
# 200个并发对http://www.google.com发送请求100次
siege -c 200 -r 100 http://www.google.com

# 在urls.txt中列出所有的网址
siege -c 200 -r 100 -f urls.txt

# 随机选取urls.txt中列出所有的网址
siege -c 200 -r 100 -f urls.txt -i

# delay=0,更准确的压力测试,而不是功能测试
siege -c 200 -r 100 -f urls.txt -i -b

# 指定http请求头 文档类型
siege -H "Content-Type:application/json" -c 200 -r 100 -f urls.txt -i -b
  • 注意事项
    发送post请求时,url格式为 http://www.xxxx.com/ POST p1=v1&p2=v22
    如果url中含有空格和中文,要先进行url编码,否则siege发送的请求url不准确。

参考:
https://www.jianshu.com/p/21b2beb08a8a

Mac压测工具(Siege)记录.md

标签:google   终端   lock   nec   最快   abi   推广   6.4   Fix   

原文地址:https://www.cnblogs.com/vipinchan/p/9638575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!