我应该考虑CPU利用率,网络流量还是http响应时间检查?我已经用Apache AB运行了一些测试(来自同一服务器 - eq:ab -k -n 500000 -c 100 http://192.XXX.XXX.XXX/) - 我监控了平均负载。即使负载在 1.0 - 1.50(一个核心服务器)之间,"每个请求的时间"(平均值)也相当稳定,对于具有一组/获取 Redis 操作的简单动态页面来说为 140 毫秒。无论如何,我很困惑,因为一般建议是在超过 70% CPU 利用率阈值时启动一个新实例。
对于像nginx这样的CPU密集型应用程序来说,70%的CPU利用率是一个很好的经验法则。CPU时间有点像体温:它实际上隐藏了很多不同的东西,但是一个很好的健康指标。平均负载是等待调度的进程数的单独度量。规则为 70%(或 80%)利用率的原因是,超过此点,CPU 密集型应用程序往往会遭受争用引起的延迟和非线性性能。
您可以通过根据设置上的 CPU 利用率绘制吞吐量和延迟(中位数和第 90 个百分位数)来自己测试这一点。查找特定系统的拐点对于容量规划非常重要。
Facebook关于Dyno的原始论文中给出了这种现象的一个很好的文章,Dyno是他们在负载下测量PHP吞吐量的系统。
https://www.facebook.com/note.php?note_id=203367363919