在上篇笔记中波波从理论上分享了基准测试的方法、常用方法、常用工具以及常犯的错误,详见《30分钟学会基准测试(下)》,本篇笔记波波将从实践的角度上为朋友们分享一下如何使siege进行压力测试。当然了大家伙学会了之后千万别拿菠菜园测试啊,菠菜园只是一个小站,服务器只是一个单核经不起任何的压力。
一、安装siege
- yum install siege
- http://download.joedog.org/siege/
- wget -P /opt http://download.joedog.org/siege/siege-latest.tar.gz
- tar xzf siege-4.0.2.tar.gz
- cd siege-4.0.2
- ./configure
- make && make install
上述命令按照顺序一行一行敲下来基本上都能安装成功,大家可以下载最新版本编译安装。
二、常用参数
具体使用文档就不说了,既然是30分钟让大家学会,那么能写在这里的都是干的不能再干的干货。详细使用文档可去官网查询。
常用参数
-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
三、模拟并发
这里是核心实操,假设我们用一台服务器模拟20000的并发量,我们可以先建立10个用户。每个用户下运行一次siege,会在用户目录下产生~/.siege/siege.conf的配置文件,该文件中需要调整2个限制参数
1、出现多少次错误时停止,不包含404(按需调整):failures
2、最大单进程并发数量,默认25 concurrent = 5000
例:20W请求,多长时间能够处理完成,并且没有错误产生。我们可以尝试以下指令
- siege -c 1000 -r 20 -i
10用户,每个用户并发1000,循环20次,主要关注总时常、响应时间、平均每秒完成请求、错误数。
例:20000并发,运行10分钟,观察服务器和应用的运行情况
- siege -c 2000 -t 10m -b
10用户,每个用户2000并发,运行10分钟。主要关注响应时间、平均每秒完成请求、平均每秒传送数据、实际最高并发
四、系统性能监测
这不在本文的讨论之列,但值得一提的是我们不能只进行压力测试。还应该在测试过程中实时监控系统的性能、延迟、响应等变化。这里大家可以借助系统监控工具来实现。
好了,波波的分享到这里就结束了,你学废了么~~~