Siege使用指南.doc_第1页
Siege使用指南.doc_第2页
Siege使用指南.doc_第3页
Siege使用指南.doc_第4页
Siege使用指南.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SIEGE官方网站/概述Siege是一个多线程http负载测试和基准测试工具。它有3种操作模式:1) Regression (when invoked by bombardment)Siege从配置文件中读取URLs,按递归方式,逐个发送请求2) Internet simulation (Siege从配置文件中读取URLs,随机选取URL发送请求)3) Brute force (在命令行上写上一个单独的URL,发送请求)安装$ wget /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.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代表秒分时。单位大小写不敏感。数字和单位之间不要有空格。-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 the 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 field=value&field2=value2host/file POST /home/jeff/haha.txt在命令行上输入URL时,最好用引号括起来。目前支持http和https两种协议。没有写明协议,默认http当一次测试中需要多个URL时,可以将URLs放到一个单独的文件中。默认$SIEGE_HOME/etc/urls.txt例如:urls.txt# 这里表述注释,一行一个URL/index.html/howto.jsp/cgi-bin/q.cgi?scope=a/cgi-bin/q.cgi POST scope=a/my.jsp POST a=1&b=2# POST文件/aha.jsp POST /home/jeff//parser.jsp POST ./my.txtSiege一次性将文件读入内存,按照文件中顺序发送请求。-i选项可以随机发送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 transferred: 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.一般等于num1 * 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到模拟用户的每秒传输数据量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 (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有关。解决方式可以设置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 POSTROUTING -o eth0 -j SNAT -to -54NOTES: 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系统优化设置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. 按照最大打开文件数量的需求设置系统, 并且通过检查/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 20000这行设置了每个用户的默认打开文件数为20000。 注意nofile项有两个可能的限制措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用-字符设定, 则hard和soft设定会同时被设定。 硬限制表明soft限制中所能设定的最大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。 备注有时我们会遇到-c1000以上出现timeout(排除server端原因),这可能是siege引起的,单个进程所启动的线程数限制。可以使用shell调用方式,多进程运行。#!/bin/shif $1 = -h | $1 = -help ;thenecho benc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论