![rackspace 和 centos 上的负载均衡器性能不佳](https://linux22.com/image/564991/rackspace%20%E5%92%8C%20centos%20%E4%B8%8A%E7%9A%84%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E6%80%A7%E8%83%BD%E4%B8%8D%E4%BD%B3.png)
我正在对不同的负载平衡选项进行负载测试,但 Nginx、haproxy 和 varnish 的结果不佳。我在 Rackspace 有一个 4GB 负载平衡器,用于 4x1GB 应用服务器。
我访问了一个名为“/slow”的 URL,该 URL 故意等待 500 毫秒才响应。如果我直接访问应用服务器,它可以处理每秒 1600-1800 个连接速率。
如果我使用 Nginx 负载均衡器,它只能处理大约 2000 个连接。我希望接近 4x1600 = 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 还是 varnish,我得到的结果都大致相同。但是,我测试了 Rackspace 的新云平衡器,它们的性能要好得多(在 7000/s 时表现良好)。由于 nginx 和其他都在我设置的实例上运行,而 rackspace 平衡器没有运行,所以我猜系统出了问题。我宁愿使用我控制的平衡器,这样我就可以向其中添加缓存、gzip、ssl 和其他内容。
我如何才能找出瓶颈?我需要对系统进行哪些调整才能提高性能?我需要超过 4GB 的 RAM 吗?(测试期间 RAM 使用率不高)。还有其他随机想法吗?
更新:我刚刚将平衡器的大小调整为 8GB,它的性能好了很多,高达 6000-7000,或与机架空间平衡器相当。这没有任何意义,因为它之前没有耗尽 RAM。
更新:下面是我在平衡器过载时 httperf 的输出示例(在 8GB 版本上,因此比我以前能够达到的要高,但错误是类似的):https://gist.github.com/1299628
答案1
我也使用 Rackspace Cloud,并且遇到了非常类似的问题。我认为问题是这样的:
从您的描述来看,您只是最大限度地利用了机架空间为我们提供的可怜的带宽,几乎完全发挥了 Varnish/Nginx 等产品所提供的所有惊人的性能提升。
为了确认,请在打开 iftop 的情况下重新运行一些基准测试,并观察它是否完全达到 rackspace 在每个服务器大小下提供的数量。