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

微信活动推广,时常瞬时并发特别高,比如一个百万粉丝的公众号,后台推送一个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

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

时间: 2024-10-10 20:12:42

Mac压测工具(Siege)记录.md的相关文章

web服务器压测工具siege、ab

web服务器压测工具也挺多,这里只介绍我用过的这两种--siege(for linux).ab(for windows). 一.siege 1.简介: Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行.siege可以从您选择的预置列表中请求随机的URL.所以siege可用于仿真用户请求负载,而ab则不能.但不要使用siege来执行最高性能基准调校测试

压测工具siege和wrk

siege压测工具 安装: wget http://download.joedog.org/siege/siege-3.0.8.tar.gz cd siege-3.0.8 ./configure make make install 验证安装结果:输入siege -V 如果输出了版本号就代表安装没问题 Siege命令常用参数 -c 200 指定并发数200-r 5 指定测试的次数5-f urls.txt 制定url的文件-i internet系统,随机发送url-b 请求无需等待 delay=0-

[软件测试]网站压测工具Webbench源码分析

一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench使用C语言编写,下面是其下载链接: http://home.tiscali.cz/~cz210552/webbench.html 说到这里,我赶脚非常有必要给这个网站局部一个截图,如下图: 第一次看到这张图片,着实吃了一精!居然是2004年最后一次更新,我和我的小伙伴们都惊呆了.不过既然现在大家还都

web压测工具http_load原理分析

原文:web压测工具http_load原理分析 一.前言 http_load是一款测试web服务器性能的开源工具,从下面的网址可以下载到最新版本的http_load: http://www.acme.com/software/http_load/ (页面实在太简陋……) 十分令人欣慰的是,这个软件一直在保持着更新(不像webbench,已经是十年的老古董了.webbench的源码分析请参考:http://www.cnblogs.com/xuning/p/3888699.html ),并且更新频率

ab(http)与abs(https)压测工具

ab(http)与abs(https)压测工具 来源 https://www.cnblogs.com/weizhxa/p/8427708.html 在学习ab工具之前,我们需了解几个关于压力测试的概念 吞吐率(Requests per second)概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数.某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率.计算公式:总请求数 / 处理完成这些请求数所花费的时间,即Request per s

Http压测工具wrk使用指南

用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持LuaJIT和OpenSSL,不过不用担心,大多数类Unix系统都支持.安装wrk非常简单,只要从github上下载wrk源码,在项目路径下执行make命令即可. git clone https://github.com/wg/wrk make make之后,会在项目路径下生成可执行文件wrk,随后

swingbench-免费的oracle性能压测工具

SwingBench介绍: SwingBench由负载生成器,协调器和集群概述组成.该软件使得能够生成负载并且将图表的事务/响应时间映射. SwingBench可用于演示和测试诸如实际应用集群,在线表重建,备用数据库,在线备份和恢复等技术 SwingBench附带的代码包括6个基准,OrderEntry,SalesHistory,TPC-DS Like,JSON,CallingCircle和StressTest .. OrderEntry基于Oracle11g / Oracle12c附带的"oe

使用压测工具ab实现搭建的页面压测

使用压测工具(ab/webbench等)实现搭建的页面压测,要求通过调整apache的工作模式来对比最后性能. 配置文件位置:/etc/httpd/conf/httpd.conf <IfModule prefork.c>  //如果加载了这个模块,就实现一下配置,一个条件化模块加载 StartServers        8  //服务在启动时默认启动几个子进程 MinSpareServers    5  //最小空闲进程数量 MaxSpareServers    20  //最大空闲进程数量

一个简单的websocket压测工具tcpkail

简介 tcpkali是一个高性能的负载生成工具,用于TCP和WebSocket服务器.采用C/C++开发并在BSD协议下授权,是一个开源的web压测工具,类似于apache的ab,但tcpkail同时支持websocket和httpd协议. 关于tcpkail的一些特性 高效的 CPU 利用率,可使用所有 CPU 核 允许同时打开大量的并发链接 (--connections) 允许限制单个连接的吞吐量 (--channel-bandwidth or --message-rate) 允许指定首页消