Amazon ec2 请求和 I/O 之间的区别

Amazon ec2 请求和 I/O 之间的区别

我有一台正在生产的服务器,目前只有 4 名员工在使用。使用亚马逊控制台的监控工具,我发现我们每天收到大约 2500 个请求,这似乎是正确的。

然而,当我检查“账户活动”下的账单时,我发现 EC2 EBS 在 12 月的这六天里总共有 471,376 个 IO。

是否存在大量错误,或者我尚未理解请求和 I/O 之间的根本区别?

答案1

I/O 操作是指任何触及磁盘的操作。单个 Apache 请求可能有许多 I/O 操作,因为它可能需要同时访问许多文件。

您可以通过以下方式降低 I/O 成本:

  • 在 RAM 中缓存尽可能多的内容(如果您使用 PHP,安装 APC 将有很大帮助)
  • 将临时/不重要的数据存储在实例的实例存储上,而不是 EBS 上
  • 将静态资产(图像、JavaScript、CSS 等)卸载到 CDN

答案2

每天处理 2500 个请求(迄今为止约 15000+ 个)的所有服务都被设置为 IO 操作,也就是说,如果它是一个 Apache 主机,或者有某种服务,每次启动一个进程或者轮换一个日志,加载的各种库、写入的文件都是 IO 操作。

按照您的速度,成本相当低,整个月的 IO 数量为 300 万。费用基于 AWS EBS 的每秒 IO 数量 - 每月约为 260 万秒。

3,000,000 / 2,600,000 = 平均 1.154 IO/s。

这意味着按照当前费率计算,您的 EBS 费用为每月 0.26 美元。

很难预测预计的用户数量会有多少 IO,但你可以将其乘以 0.26 美元乘以 X,其中 X 是预计的磁盘 IO/s。

正如另一个回复中提到的,您需要缓存!

答案3

如果服务器上有一个数据库,并且您没有正确索引表或没有足够的 RAM 将数据库加载到内存中,您将看到大量的 IO 流量。

相关内容