使用 Nginx 的 keepalive patch,nginx+memcached的TPS提升7倍

编者按:本月初 Maxim Dounin,Nginx 最活跃的开发者之一,提交了 upstream keepalive patch,支持 http/fastcgi/memcached,除了减少和 upstream 的网络开销外,也意味着能反向代理 http chunked 响应了!搜狐技术部CMS组的同学进行了一个简单的测试:


---------- 已转发邮件 ----------
发件人: 韩孝冰
日期: 2011年8月8日 下午3:51
主题: HttpUpstreamKeepalive效果瞠目结舌



HttpUpstreamKeepalive真的很牛X啊。

siege -c200 -b -t10M -lsiege.log -H"Accept-Encoding: gzip,deflate" -i -f urls.txt
siege的结果:
Lifting the server siege...      done.
Transactions:               11125884 hits
Availability:                 100.00 %
Elapsed time:                 599.53 secs
Data transferred:            8139.93 MB
Response time:                  0.01 secs
Transaction rate:           18557.68 trans/sec
Throughput:                    13.58 MB/sec
Concurrency:                  199.11
Successful transactions:    11125884
Failed transactions:               0
Longest transaction:            9.01
Shortest transaction:           0.00

对比之前的压测结果,tps提升了7倍,100%成功响应。并发达到参数设置的上限,预示可能还有提升空间。

链接占用也很稳定,部了nginx+memcached的那台机器,time_wait在60000左右,总链接数不找过64000。
netstat -at | awk '/^tcp/{a[$6]++}END{for(i in a ){printf("%s\t%d\n",i,a[i])}}'
TIME_WAIT       59830
FIN_WAIT1       59
FIN_WAIT2       1
ESTABLISHED     3255
SYN_RECV        35
LISTEN  10

最后是loadaverage,2.2左右。


你可能感兴趣的:(nginx,patch,KeepAlive)