[web] http_load更适合性能测试

写了个httpd服务,测试性能。

用curl发200k的请求,回复也是200k的消息,调用20次curl,花了30秒。

这性能看上去很低,但我发现httpd的CPU消耗也很低,那是慢在哪里了?


于是自己写了个client端,一次send 200k的消息,再收200k,重复1000遍,发现超快,几秒就完成了,server端httpd消耗的CPU也高起来了,占到70%,看来不是我写的httpd的问题,压根就是curl启动慢,白耗时间。


curl不适合用来做性能测试,http_load更适合,但它不带body,所以我改了改http_load.c,加了个参数 -body ,后面跟body的大小(单位是KB),比如:

./http_load -p 5 -s 600 -body 100 url.list

意思是5个并发,跑600秒,body为100k大,跑完后显示QPS几百,够了。


我改动后的http_load.c代码在这里,diff在这里。body的大小不能超过200k,因为我的测试足够了。另外还把SO_SNDBUF开到了最大(rhel4上是128k),因为想把200k一次send出去,这样改最方便。


相关文章

分类

4 Comments

yu said:

用集团出的那个 abench吧,比http_load好很多.

DongHao Author Profile Page said:

abench开源吗?如果是私有的,无法向读者交待呵 :)

xiaohe said:

用httperf吧,我对比过ab, siege, http_load, webbench和httperf,这是最好用的一个了.
http_load有几个问题: url多了load文件特别慢, 是卡在query dns的地方;还有就是-rate参数在较大的时候不准...

恩, 这个是开源的.

DongHao Author Profile Page said:

好,我下次试试httperf

留言:

关于文章

This page contains a single entry by DongHao published on 02 5, 2010 3:27 PM.

重现 was the previous entry in this blog.

《独辟蹊径品内核》 is the next entry in this blog.

Find recent content on the main index or look in the 存档 to find all content.