我什么时候应该添加(自动扩展)新的Nginx服务器实例?

时间:2013-11-12 21:28:18

标签: nginx load-balancing capacity-planning

我应该考虑CPU利用率,网络流量还是http响应时间检查?我用Apache AB(来自同一台服务器 - eq:ab -k -n 500000 -c 100 http://192.XXX.XXX.XXX/)运行了一些测试 - 我监控了平均负载。即使负载在1.0 - 1.50(一个核心服务器)之间,“每个请求的时间”(平均值)也非常可靠,对于一个简单的动态页面,只需一次设置/获取Redis操作,这个时间为140毫秒。无论如何,我很困惑,因为一般的建议是在你通过70%CPU利用率阈值时启动一个新实例。

1 个答案:

答案 0 :(得分:1)

对于像nginx这样的CPU绑定应用程序,70%的CPU利用率是一个很好的经验法则。 CPU时间有点像体温:它实际上隐藏了很多不同的东西,但它是健康的一个很好的一般指标。负载平均值是衡量等待安排的进程数的单独度量。该规则利用率为70%(或80%)的原因是,在此之后,受CPU限制的应用程序往往会受到争用引发的延迟和非线性性能的影响。

您可以通过在设置上根据CPU利用率绘制吞吐量和延迟(中位数和第90百分位数)来自行测试。找到特定系统的拐点对于容量规划非常重要。

这篇关于这种现象的非常好的报道在Facebook的关于Dyno的原始论文中给出,它是用于测量负载下PHP吞吐量的系统。

https://www.facebook.com/note.php?note_id=203367363919