小序:对比过几款轻量级的压测工具。siege http_load ab webbench.siege太吃内存(在相同的请求数与并发数下,ab相对而言耗资源较少)
ab简介:
ab全称为:apache bench,官方注释为:
Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
一、安装
Linux下可以直接安装Apache工具即可。
yum install -y httpd-tools
二、使用
eg.
ab -n 200000 -c 10000 "http://jd.com/"
-n为请求数
-c为并发数
执行命令后可以看到如下的测试报告:
三、常见问题
1.有时设置并发参数较大时, 如1000或10000+,执行命令时会报如下错误:
解释:查看应用服务器和数据库均未报错,连接被重置,apr_socket_recv是OS内核的一个参数,高并发情况下,内核会认为系统受到了SYN flood攻击,会发送cookies(possible SYN flooding on port 80. Sending cookies),这样会减慢影响请求的速度,所以在应用服务器上设置下该参数为0 禁用系统保护就可进行大并发测试了。
本文转自 honzhang 51CTO博客,原文链接:http://blog.51cto.com/hongz/2044657