the5fire

关注Python、Django、Vim、Linux、Web开发、团队管理和互联网--Life is short, we need Python.


web压力测试ab测试的使用

作者:the5fire | 标签:   | 发布:2012-11-15 10:02 p.m. | 阅读量: 11581, 11184
这周前三天处于高速的忙碌之中,一直没来的及对我部的那十台服务器进行压力测试。今天稍得空闲,想起这事,觉得不能再拖了。不然这服务器老是报障发短信也不个事,得从根本上解决才行。

十台服务器上部了二十个tornado进程,每台上两个。前面用nginx做负载,目前还不清楚nginx的负载是怎么一会事儿。tornado处于阻塞状态了,为啥还会把请求打过去。不过刨除nginx的事不说,重点还是在tornado为啥阻塞。

从日志中看不出啥异常情况,只能看到从某个get请求之后日志就不再更新了,而最后一个请求并不是导致阻塞的请求。请求的日志是在你的web服务器响应完之后才打印出来的。因此从日志看不出来。当然,你可以在不同url请求中用logger打印出日志,来帮你定位问题在哪。不过这种办法需要修改的东西太多。

于是我想到了用apache的ab压力测试的工具来测试下,看看能否重现这个问题。下午测试了,果然找到了问题所在。在tornado中我还不太会使用异步这样的东西,因此程序很容易阻塞。另外对与第三方数据的请求timeout的时间有些长。

突然想起来,上面的这类异常的分析应该是我在之前的面试中遇到过的,只不过当时没有具体的方案。

说了这么多废话,来说ab测试吧,其实ab测试就是一个简称ab的工具的使用。

只针对ubuntu说,其他的系统没用过不了解,不过大体应该一样。

在命令行输入ab回车,应该会提示你要安装apache的一个工具,执行那个命令就行了。然后就是测试了。

我用的命令就是:ab -n 4000 -c 500 http://test.com/test?a=1
意思就是4000个请求,500个并发。这应该就是模拟500个用户,每个用户访问这个url400次并发访问4000次。 - from the5fire.com
----EOF-----

微信公众号:Python程序员杂谈


其他分类: