测试方法论:先测网站静态资源,如果有前端服务器(Apache,Nginx等)先测试 static files,测试静态文件得到的这个数据是一个上限,网站程序的动态请求不会比这更快了。找近一点的地方测,减少由于网络 latency 导致不准确性。不要用同一台 server 测试,虽然 CPU 不太会是问题,但是 I/O 可能会有影响。总体可用性测试:测平均值和标准差一般压力测试:Server 每秒可以承受多少 requests测试工具:推荐 HTTPerf搭配 Autobench1. 总体可用性测试:测平均值和标准差测试的数据除了看平均值,更要看标准差跟计算信赖区间。基本的统计学告诉我们,相差平均一个标准差可以涵盖 68% 的资料,相差两个标准差就可以涵盖 95% 的资料。因此我们可以算出 95% 的信赖区间,也就是 95% 发出的 requests 中,可以在几秒到几秒内回应。httperf --server example.com \ --port 80 \ --uri /path \ --num-conn 3000 \ --num-call 1 \ --timeout 5--server 指定主机地址--port 指定主机端口--uri 指定测试的页面(相对路径)--num-conn 指定总共发多少个请求--num-call 指定每次连接发送的请求数(通常为1)--timeout 指定请求超时时间测试输出结果 Reply rate 部分可以看到有平均和标准差。要注意的是 httperf 是每5秒抓一次样本(sample),根据 httperf 的建议是希望至少有 30 个样本数才能得到准确的标准差,因此当样本(sample)数太少的时候,需要把 –num-conns 往上加。2. 一般压力测试:Server 每秒可以承受多少 requests在之前的基础上,再加上 --rate 跟 --hog 參數:--rate 指定每秒执行多少个请求数httperf --server example.com \ --port 80 \ --uri /path \ --num-conn 3000 \ --num-call 1 \ --timeout 5 --rate 300 \ --hog逐步把 --rate 往上调,直到 server 超过极限时,当有 requests 被 drop off 了,replies 就会减少并出现 Errors。参考资料:http://linux.die.net/man/1/httperfHTTPerf测试web服务器利用autobench测试web服务器极限并发数
测试方法论:
测试工具:
1. 总体可用性测试:测平均值和标准差
测试的数据除了看平均值,更要看标准差跟计算信赖区间。基本的统计学告诉我们,相差平均一个标准差可以涵盖 68% 的资料,相差两个标准差就可以涵盖 95% 的资料。因此我们可以算出 95% 的信赖区间,也就是 95% 发出的 requests 中,可以在几秒到几秒内回应。
--server
指定主机地址--port
指定主机端口--uri
指定测试的页面(相对路径)--num-conn
指定总共发多少个请求--num-call
指定每次连接发送的请求数(通常为1)--timeout
指定请求超时时间测试输出结果 Reply rate 部分可以看到有平均和标准差。要注意的是 httperf 是每5秒抓一次样本(sample),根据 httperf 的建议是希望至少有 30 个样本数才能得到准确的标准差,因此当样本(sample)数太少的时候,需要把 –num-conns 往上加。
2. 一般压力测试:Server 每秒可以承受多少 requests
在之前的基础上,再加上 --rate 跟 --hog 參數:
--rate
指定每秒执行多少个请求数逐步把
--rate
往上调,直到 server 超过极限时,当有 requests 被 drop off 了,replies 就会减少并出现 Errors。参考资料: