我有一个快速增长(每天 10M 次调用)的 Web 服务,当前在一个运行 ubuntu10.04+ apache + APC + memcache(+其他实例上的多个主/从 mysql 场)的 EC2 应用程序实例上。
我考虑通过以下方式之一来升级应用程序实例:
1)增加到更大的实例类型
2)拆分到多个应用服务器
根据当前服务器图表,我可以很好地评估我的内存使用情况和 CPU 使用情况。
我担心的是,如果我选择更大的 EC2 实例类型,随着流量的增长,网络 i/o 可能会成为瓶颈。
我的问题:如何估计网络 I/O 使用情况和限制?如何知道在超载之前我可以处理多少备用流量。(就网络容量而言,而不是服务器 RAM/CPU)
我以前在 Mediatemple 上安装过 CentOS/plesk 服务器,瓶颈是 kmemsize,它是有限数量的不可交换内存,当网络流量增加时就会变满。在装有 Ubuntu 的 EC2 实例上是否有类似的东西可以监控?
答案1
我没有完整的答案给你,但我可以根据 cyberx86 所说的内容进行构建。较小的实例具有较少的 CPU 和网络容量。请记住,如果您使用 EBS,则您的磁盘 IO 依赖于您的网络 IO。亚马逊提供了用于监控网络使用情况的工具。像 iotop 这样的工具应该能够帮助您了解磁盘 IO,它还可以显示您的等待百分比。除非我弄错了,否则 EBS 卷的等待百分比应该受到网络限制。