我负载测试负载平衡的不同选项,并从Nginx,haproxy和清漆得到不好的结果.我在Rackspace有一个4GB负载均衡器,可以使用4x1GB应用服务器.
我正在点击一个名为“/ slow”的网址,故意在响应之前等待500毫秒.如果我直接点击应用程序服务器,它可以处理每秒1600-1800的连接速率.
如果我点击Nginx负载均衡器,它只能处理大约2000个连接.我希望有更接近4×1600 = 6000的东西.下面是我用来测试它的命令.这是在40 256 MB实例上并行运行的.我故意将num_call设置为1,因为我希望看到连接性能.任何高于此,我开始得到很多错误.
httperf --server 50.56.80.227 --port 1555 --uri /slow --rate 50 --num-call 1 --num-conn 100 --timeout 5
这是我的Nginx配置:https://gist.github.com/1299501
所以,这是奇怪的事情,无论我使用Nginx,haproxy还是清漆,我得到大致相同的结果.但是,我测试了Rackspace的新云平衡器,并且它们获得了更好的性能(以7000 / s的速度运行).由于Nginx和其他都在我设置的实例上运行,并且机架空间平衡器不是,我猜这个系统有些错误.我宁愿使用我控制的平衡器,所以我可以添加缓存,gzip,ssl和其他东西.
我怎样才能找出瓶颈是什么?有什么我应该调整系统,以使性能更好?我需要超过4GB的内存吗? (测试期间Ram的使用率不高).还有其他任意想法吗?
更新:我刚刚将平衡器调整为8GB,它的性能要好得多,最高可达6000-7000,或者与机架式平衡器相当.这没有任何意义,因为它之前没有用完RAM.
更新:这是我在重载平衡器时从httperf输出的示例(在8GB版本上,比以前更高,但错误类似):https://gist.github.com/1299628