Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试。
安装 Siege
记录技术、生活、经验、思考、学习、管理的博客
linux 查看硬件信息:proc
cat /proc/cpuinfo #查看CPU信息,
cat /proc/meminfo #查看内存信息。
cat /proc/ioports #查看IO端口
cat /proc/swaps #查看交换分区信息(/proc)
cat /proc/partitions #查看磁盘分区
cat /proc/loadavg #查看系统负载通过pmap指令查看哪些地方占用了内存
pmap $(pgrep php-cgi |head -1)指令ps找出消耗内存的元凶
ps -A --sort -rss -o comm,pmem,pcpu |uniq -c |head -15修改php-fpm 进程数在/usr/local/php/etc/php-fpm.conf 查找max_children 将后面的值修改成你要设置的值就可以,因为是子进程的原因,所以设置成1的话实际上会有两个进程,因为还有一个主进程。
#vi /usr/local/php/etc/php-fpm.conf找到max_children,按你的内存容量修改PHP进程的数量,一般128内存开启6个,256内存开启16个。
request_terminate_timeoutrequest_terminate_timeout 指的是fast-cgi的执行脚本时间,它默认是0s。0s的含义是让php-cgi一直执行下去而没有时间限制。如果你在此设成0s,那么当出现502 Bad Gateway的时候,这个502的状态将一直持续下去不会改变。但是如果你设置成5s,那么当php-cgi假死5s以后会自动恢复。这个值可以根据你 服务器的性能进行设定,这里我设置的是30s。
修改修改nginx进程数,根据CPU核心数量修改
vi /usr/local/nginx/conf/nginx.conf开3个进程
worker_processes 3;
worker_cpu_affinity 0010 0100 1000;优化后,使用以下命令重新启动lnmp
/root/lnmp restart使用压力测试工具:siege的用法
Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试。
安装 Siege
#一般都是推荐下面的下载地址,
#wget http://www.joedog.org/pub/siege/siege-latest.tar.gz
#tar -xzvf siege-latest.tar.gz
#如果上面地址失效,请使用这个,或者用Google搜索siege.tar.gz找到合适的#wget http://pkgs.fedoraproject.org/repo/pkgs/siege/siege-3.0.5.tar.gz/822cc4750a6162945ee91af98773bda4/siege-3.0.5.tar.gz
#tar -xzvf siege-3.0.5.tar.gz安装
#./configure
#make
#make install成功:
siege –help(如果有help出现,则已经安装成功)
常用的siege命令举例
对本机测试一般用:
siege -c 300 -t 30s 127.0.0.1参数详解:
-C,或–config 在屏幕上打印显示出当前的配置,配置是包括在他的配置文件HOME/.siegerc中,可以编辑里面的参数,这样每次siege都会按照它运行.−v运行时能看到详细的运行信息−cn,或–concurrent=n模拟有n个用户在同时访问,n不要设得太大,因为越大,siege消耗本地机器的资源越多−i,–internet随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),当urls.txt存在是有效−dn,–delay=nhit每个url之间的延迟,在0−n之间−rn,–reps=n重复运行测试n次,不能与−t同时存在−tn,–time=n持续运行siege‘n’秒(如10S),分钟(10M),小时(10H)−l运行结束,将统计数据保存到日志文件中siege.log,一般位于/usr/local/var/siege.log中,也可在.siegerc中自定义−RSIEGERC,–rc=SIEGERC指定用特定的siege配置文件来运行,默认的为HOME/.siegerc
-f FILE, –file=FILE 指定用特定的urls文件运行siege ,默认为urls.txt,位于siege 安装目录下的etc/urls.txt
-u URL,–url=URL 测试指定的一个URL,对它进行”siege “,此选项会忽略有关urls文件的设定结果说明:
Transactions: 30000 hits //完成30000次处理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 68.59 secs //总共使用时间
Data transferred: 817.76 MB //共数据传输 817.76 MB
Response time: 0.04 secs //响应时间,显示网络连接的速度
Transaction rate: 437.38 trans/sec //平均每秒完成 437.38 次处理
Throughput: 11.92 MB/sec //平均每秒传送数据
Concurrency: 17.53 //实际最高并发连接数
Successful transactions: 30000 //成功处理次数
Failed transactions: 0 //失败处理次数
Longest transaction: 3.12 //每次传输所花最长时间
Shortest transaction: 0.00 //每次传输所花最短时间siege -c 200 -r 100 http://www.google.com200个并发对http://www.google.com发送请求100次
参数说明:
-c 20 并发20个用户
-r 2 重复循环2次
-f baidu.url 任务列表文件:URL列表Siege命令常用参数
-c 200 指定并发数200
-r 5 指定测试的次数5
-f urls.txt 制定url的文件
-i internet系统,随机发送url
-b 请求无需等待 delay=0
-t 5 持续测试5分钟
# -r和-t一般不同时使用Siege使用的一些总结
1,发送post请求时,url格式为:http://www.xxxx.com/ POST p1=v1&p2=v2
2,如果url中含有空格和中文,要先进行url编码,否则siege发送的请求url不准确Siege输出结果说明
Transactions: 总共测试次数
Availability: 成功次数百分比
Elapsed time: 总共耗时多少秒
Data transferred: 总共数据传输
Response time: 等到响应耗时
Transaction rate: 平均每秒处理请求数
Throughput: 吞吐率
Concurrency: 最高并发
Successful transactions: 成功的请求数
Failed transactions: 失败的请求数参考:
http://blog.csdn.net/yybjroam05/article/details/19074389
http://www.zxsdw.com/index.php/archives/881/
http://blog.log4d.com/2011/11/vps-lnmp-setup-config/
http://www.opsers.org/linux-home/server/php-fpm-on-analysis-of-system-resources.html