默默的一块石头
分类: LINUX
2022-03-07 14:59:26
这里列举了常见的压力测试工具
1. webbench
2. http_load
3. siege 支持https
4. db
5. tsung 推荐
安装
tar zxf webbench-1.5.tar.gz && cd webbench-1.5
make && make install
常用参数
-t 测试时间
-c 并发连接数
举个粟子
模拟1000并发数,测试时间300秒。
webbench -c 1000 -t 300
下载
wget
安装
tar zxvf http_load-12mar2006.tar.gz && cd http_load-12mar2006
make && make install
常用参数
-p 并发访问进程数
-f 总的访问次数
-r 每秒的访问频率
-s 总的访问时间
举个粟子
http_load -p 100 -f 1000 url.txt
总访问1000次,并发100
http_load -r 100 -s 300 url.txt
持续300秒,每秒100次访问
下载
wget
安装
tar zxvf siege-3.1.0.tar.gz && cd siege-3.1.0/
./configure
make && make install
siege.config
常用参数
-i 多个url,随机访问
-c 并发用户数
-r 重复次数
-t 测试时间
-l 输出测试日志
举个粟子
siege -c 200 -t 10
并发数200,持续时间10秒。
siege -c 50 -r 100
50个用户(每次并发量,注意不是每秒并发量) 重复100次 共产生 50 * 100 = 5000个请求
siege -c 50 -r 100 /?name=test
50个用户 重复100次 发送GET参数
siege -c 50 -r 100 " POST name=test" 50个用户 重复100次 发送POST参数 (注意引号)
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 //每次传输所花最短时间
安装
centos: yum install apr-util
debian: apt-get install apache2-utils
常用参数
-n 请求总次数
-c 并发请求数,不能大于-n
举个粟子
ab -c 100 -n 1000
并行发送100个请求,执行1000次。
yum -y install erlang perl perl-RRD-Simple.noarch perl-Log-Log4perl-RRDs.noarch gnuplot perl-Template-Toolkit
wget http://tsung.erlang-projects.org/dist/tsung-1.5.1.tar.gz
tar zxvf tsung-1.5.1.tar.gz
cd tsung-1.5.1 ./configure
make && make install
mkdir ~/.tsung/ cp /usr/share/doc/tsung/examples/http_simple.xml ~/.tsung/tsung.xml
<tsung loglevel="debug" version="1.0"> <clients> <client host="localhost" use_controller_vm="true"/> clients> <servers> <server host="xxx.imdst.com" port="8081" type="tcp">server> servers> <load> <arrivalphase phase="1" duration="10" unit="minute"> <users interarrival="2" unit="second">users> arrivalphase> load> <sessions> <session name="http-example" probability="100" type="ts_http"> <for from="1" to="20000" var="i"> <request> <http url="/" method="POST" version="1.1" contents_from_file="/tmp/myfile">http> request> for> session> sessions> tsung>
clients 客户端,如果是多台客户端同时压测的话,可以配置多个client的IP地址
servers 被压测服务器配置,主要是填写IP和端口 load 配置压测信息,如:10分钟之内,不限制并发用户以每2秒的速度并发请求。
sessions 被压测服务器的具体配置信息,这个可以指定配置的URL,由于我这里有token等相关的变量,因此需要采用文件的形式,否则会提示配置文件错误。
更多配置文件参考可以看: