网站压力测试工具参考

[ 2020-03-31 16:13:53 | 作者: admin ]
字号: | |
首先就是利用 CURL 远程调用程序进行压力测试。
先使用之前所提到的 CURL 的代码,做个循环次数为n并存为一个文件,再编写个 shell 脚本并发调用这个文件m次。这样就可以模拟并发m个线程每个线程调用程序n次的压力测试了。shell 脚本如下:
/usr/local/php/bin/php /root/test.php 1000 1 &
/usr/local/php/bin/php /root/test.php 1000 2 &
/usr/local/php/bin/php /root/test.php 1000 3 &
/usr/local/php/bin/php /root/test.php 1000 4 &
/usr/local/php/bin/php /root/test.php 1000 5 &
上面这个 shell 脚本就是模拟并发5个线程每个线程调用程序1000次的压力测试。这个脚本中的关键就是每行最后的‘&’符号,这个符号代表这5个调用并发执行。如果没有这个符号,这5个调用将会是顺序执行。

第二种压力测试方法就是使用 apache 自带的 ab 进行测试。
语句如下:
ab -n 5000 -c 5 http://xxx.1.1.x/test.php
其中 -c 代表并发线程数,-n 代表总共调用的次数。这个的压力和上面的那个方法的压力量是一样的。
测试结果如下:
Concurrency Level: 5
Time taken for tests: 8.748082 seconds
Complete requests: 5000
Failed requests: 0
Write errors: 0
Non-2xx responses: 5000
Total transferred: 7435000 bytes
HTML transferred: 6180000 bytes
Requests per second: 571.55 [#/sec] (mean)
Time per request: 8.748 [ms] (mean)
Time per request: 1.750 [ms] (mean, across all concurrent requests)
Transfer rate: 829.90 [Kbytes/sec] received
从测试结果中的标蓝行可以看出上面说的压力量,从标红行可以看出大概被调用的程序的性能。
在测试时,可以变化并发线程数和调用次数,来观看测试结果的 Requests per second 的值,找到他的一个最大值,就是程序的性能。一般是从小到大压力慢慢增大,性能也会跟着提高,到了最高值后,压力再大,这个值就会有所下降。

最后一种测试方法是利用压力测试工具 siege 进行压力测试
工具的安装和使用都非常简单,网上一搜一大片。使用方法如下:
/usr/local/siege/bin/siege -c 5 -r 1000 http://xxx.1.1.x/test.php
其中,-c 同样是表示并发线程数,-r 则是每个线程所发出的请求数。使用方法跟 ab 差不多。
这个工具还有个参数非常有用,一个是 -t 代表在一个时间段中进行压力测试单位为分钟。使用这个工具还可以 POST 数据到程序,这个功能非常方便。直接在上面那句后面直接加上 POST 就可以传送单个数值,如果想传送多个数值时,可以使用 ‘<’符号从文件里读数据,例如:
/usr/local/siege/bin/siege -c 5 -r 1000 http://xxx.1.1.x/test.php POST < /root/data.xml

通过这三种方法就可以了解所写的程序的性能、服务器的性能,这样就可以根据结果进行改进了。
文章来源 http://blog.sina.com.cn/s/blog_5592787201019h84.html


最后附一个并发测试小工具 点击下载
[最后修改由 admin, 于 2020-03-31 16:19:50]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2657

这篇日志没有评论。

此日志不可发表评论。