美文网首页
Mac压测工具(Siege)记录.md

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

作者: 7f2aceb77681 | 来源:发表于2018-09-13 09:09 被阅读302次

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

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

公司测试小组用的工具是:loadrunner。

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

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

image.png

二、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

    微信活动推广,时常瞬时并发特别高,比如一个百万粉丝的公众号,后台推送一个H5的活动,我们公司的应用在短时间内基本处...

  • Mac安装压测工具siege

    寂静在喧嚣里低头不语,沉默在黑夜里与目光结交,于是,我们看错了世界,却说世界欺骗了我们。by 泰戈尔 引用于:ht...

  • Siege高性能压测工具

    前言 Siege是一款高性能的Http压力测试工具。Siege支持身份验证、cookies、http、https和...

  • web性能测压工具 | siege

    简介Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站...

  • 2020-07-26 php+nginx 压测

    我们通过siege来实现压测, ·执行语句示例: siege -r 10 -c 100 http://zjdapx...

  • 压测工具siege的简单使用

    Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进...

  • Siege性能测试

    “Siege”意为围攻、包围。是一款使用纯C语言编写的开源WEB压测工具,适合在GNU/Linux上运行,具有较强...

  • mac安装压力测试工具siege

    brew install siege 搞定 siege使用说明 压测前的准备工作 一、修改系统的文件描述符限制 当...

  • IntelliJ IDEA java开发 下载、激

    ** 前言 ** 关于压测工具,之前了解过loadrunner、jmeter,因为设备是mac,loadrunne...

  • 提升cpu使用率

    如何优化压测工具发压能力 -- 提升cpu使用率 压测工具工作流程 压测工具一般在性能压测过程中用于对被压的系统产...

网友评论

      本文标题:Mac压测工具(Siege)记录.md

      本文链接:https://www.haomeiwen.com/subject/rbcbgftx.html