Siege使用指南-8页精选文档.doc

上传人:1595****071 文档编号:33828528 上传时间:2022-08-12 格式:DOC 页数:8 大小:136.50KB
返回 下载 相关 举报
Siege使用指南-8页精选文档.doc_第1页
第1页 / 共8页
Siege使用指南-8页精选文档.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《Siege使用指南-8页精选文档.doc》由会员分享,可在线阅读,更多相关《Siege使用指南-8页精选文档.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流Siege使用指南【精品文档】第 8 页SIEGE官方网站http:/www.joedog.org/概述Siege是一个多线程http负载测试和基准测试工具。它有3种操作模式:1) Regression (when invoked by bombardment)Siege从配置文件中读取URLs,按递归方式,逐个发送请求2) Internet simulation (Siege从配置文件中读取URLs,随机选取URL发送请求)3) Brute force (在命令行上写上一个单独的URL,发送请求)安装$ wget http:/www.joedog.or

2、g/pub/siege/siege-2.70.tar.gz$ tar zxvf siege-2.70.tar.gz$ ./configure$ make$ sudo make install调用Siege以命令行方式使用,调用格式如下: siege options siege options url siege -g urlSiege的选项说明:-V , -version打印siege的版本信息-h , -help打印帮助信息-C , -config打印当前配置。这个选项读取 .siegerc 并打印。你可以通过编辑$HOME/.siegerc修改配置。如果没有这个文件,你可以运行siege.

3、config(/usr/local/bin/siege.config)来生成此文件。 -v , -verbose 打印详细信息。包含请求的协议、响应码、请求的URL -g URL , -get URL 获得一个HTTP事务。导出headers和显示HTTP交易。对于debug有所帮助。-c NUM , -concurrent=NUM 并发用户数(必需参数)。-i , -internet 此选项配合URLs的配置文件使用。每个虚拟用户每次请求的URL是随机从配置文件的获取。-t NUMm , -time=NUMm 设置测试运行的时间。单位SMH代表秒分时。单位大小写不敏感。数字和单位之间不要有空

4、格。-f FILE , -file=FILE 被测试的URLs配置文件。默认$SIEGE_HOME/etc/urls.txt - l , -log 记录统计信息到$SIEGE_HOME/var/siege.log- m MESSAGE , -mark=MESSAGE此选项允许你使用分隔符标记日志文件。没必要与-l同时使用。-d NUM , -delay=NUM Time DELAY, random delay before each requst between 1 and NUM. (NOT COUNTED IN STATS)-b , -benchmarkBENCHMARK, runs th

5、e test with NO DELAY for throughput benchmarking. 负载测试时不推荐使用。-H HEADER , -header=HEADERHEADER, 该选项允许你添加额外的头信息。 R SIEGERC , -rc=SIEGERC设置运行参数配置文件。 默认 $HOME/.siegerc-A User Agent , -user-agent=User AgentAGENT, 定制客户端信息。URL格式支持的格式:protocol:/ host.domain.xxx :port /path/filehost.domain.xxx/file POST fiel

6、d=value&field2=value2host/file POST /home/jeff/haha.txt在命令行上输入URL时,最好用引号括起来。目前支持http和https两种协议。没有写明协议,默认http当一次测试中需要多个URL时,可以将URLs放到一个单独的文件中。默认$SIEGE_HOME/etc/urls.txt例如:urls.txt# 这里表述注释,一行一个URL POST scope=a POST a=1&b=2# POST文件 POST /home/jeff/my.txt POST ./my.txtSiege一次性将文件读入内存,按照文件中顺序发送请求。-i选项可以随

7、机发送URL请求。在文件中,我们可以设置和引用变量。先定义后引用原则。一个变量一行,类似于shell变量,引用时用$()或者$,如 HOST = http:/$HOST/index.html如果变量不存在,则表示空字符串。测试报告测试结果会打印在屏幕上,格式如下* Siege 2.70* Preparing 100 concurrent users for battle. The server is now under siege.done Transactions: 339 hits Availability: 93.39 % Elapsed time: 67.47 secs Data tr

8、ansferred: 4273708 bytes Response time: 8.25 secs Transaction rate: 5.02 trans/sec Throughput: 63342.34 bytes/sec Concurrency: 41.47 Successful transactions: 337 Failed transactions: 26 Longest transaction: 17.77 secs Shortest transaction: 0.37 secs各项含义说明:TransactionsThe number of server hits.一般等于nu

9、m1 * num2 (-c num1 -r num2) 。有时会超过这个值,例如重定向会算做2次hit。Availability服务器成功处理的socket连接的百分比。这个数字不包含400和500级别的错误。Elapsed time本次测试所消耗的时间。Data transferred传输数据的总和。它包含header和content,所以数字可能会大于服务端的数字。如果使用-i选项,因为每次请求的URL是从urls.txt中随机选取的,所以这个值每次运行都会不同。Response time平均响应时间。Transaction rate这个就是TPS。Throughput从server到模拟

10、用户的每秒传输数据量bytes,即吞吐率。Concurrency同时连接数平均值。该值的上升伴随着服务器性能的下降。Successful transactions服务器响应code=400,加上处理失败的socket连接(包含timeout)的数量。测试举例测试数值设计,设计测试场景时,最好根据实际情况分析线上日志得出需要的测试标准。webalizer这是一个免费得日志分析工具,也可以自己编写脚本分析。Case1 -c100 -d5 (5秒内点击率100)Case2 -c200 -d5 (5秒内点击率200)Case3 -c300 -d5 (5秒内点击率300)Case4 -c400 -d5

11、(5秒内点击率400)Case5 -c100 -d1 (5秒内点击率500,这里与上面设置方法稍有区别)平均响应时间(Y-秒 X-百Vusers)TPS(Y-TPS X-百Vusers)求教:Concurrency(这个是我目前没搞明白的,网上那些人也没弄明白,所有人都翻译为并发用户数,然而-c num中的参数也是翻译也并发用户数,那这两个怎么区别了)concurrencycase编号1.913.2725.7337.9848.925备注:我理解为类似于集合点那种同时提交的概念,不知对错。测试环境设置Siege在GNU/Linux kernel 2.6.x 上运行可能会僵死,原因可能与NPTL有

12、关。解决方式可以设置LD_ASSUME_KERNEL=2.4.1 ,运行方式如下$ LD_ASSUME_KERNEL=2.4.1 siege -c 20 -r 100 -f urls.txtSiege支持Netscape cookie ,但不支持RFC 2965 cookies.在同一台机器上实现多IP测试(来自Robert Hartman)1. 添加IP别名。例子:!/bin/sh for i in seq 1 254 do ifconfig eth0:$i 192.168.1.$i;done2. Reverse NAT with iptables.例如iptables -t nat -A

13、POSTROUTING -o eth0 -j SNAT -to 192.168.1.1-192.168.1.254NOTES: This method can be used for Class B address spaces as well with proper masking on the eth0 interface. Robert tested this to work with 2500+ IPs on a single ethernet card. You can contact Robert via email: robert at roberthartman dot net

14、系统优化设置sysctl -w net.ipv4.tcp_tw_reuse=1表示开启重用,允许将TIME-WAIT Sockets重新用于新的TCP连接,默认为0,表示关闭。sysctl -w net.ipv4.tcp_tw_recycle=1表示开启TCP连接中TIME-WAIT Sockets的快速回收,默认为0,表示关闭。sysctl -w net.ipv4.tcp_fin_timeout=30参数tcp_fin_timeout 是套接字关闭时,保持FIN-WAIT-2状态的时间。ulimit -n查看单个进程可以open files的数量。修改方式:1. 按照最大打开文件数量的需求设

15、置系统, 并且通过检查/proc/sys/fs/file-max文件来确认最大打开文件数已经被正确设置。 # cat /proc/sys/fs/file-max如果设置值太小, 修改文件/etc/sysctl.conf的变量到合适的值。 这样会在每次重启之后生效。 如果设置值够大,跳过下步。 # echo 20000 /proc/sys/fs/file-max编辑文件/etc/sysctl.conf,插入下行。 fs.file-max = 200002. 在/etc/security/limits.conf文件中设置最大打开文件数, 下面是一行提示: # 添加如下这行。 * - nofile

16、20000这行设置了每个用户的默认打开文件数为20000。 注意nofile项有两个可能的限制措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用-字符设定, 则hard和soft设定会同时被设定。 硬限制表明soft限制中所能设定的最大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。 备注有时我们会遇到-c1000以上出现timeout(排除server端原因),这可能是siege引起的,单个进程所启动的

17、线程数限制。可以使用shell调用方式,多进程运行。#!/bin/shif $1 = -h | $1 = -help ;thenecho benchmarktest.sh process num=3 url request num=300 time=30s;exit 1;fiif test $1 ; thennum=$1;elsenum=3;fiif test $2 ; thenurl=$2;elseurl=;fiif test $3 ; thenre=$3;elsere=300;fiif test $4 ; thentime=$4;elsetime=30s;fifor (i=1; i/dev/null &;echo $i;done

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁