EC2 实例上的实时突发 IO 余额

EC2 实例上的实时突发 IO 余额

我正在尝试使用 60 GiB gp2 卷对 ec2 实例上的一些磁盘性能问题进行故障排除。云监控指标似乎不是很精细。有没有办法实时查看突发平衡,例如在 ssh 进入机器时跟踪某个文件?

答案1

这是不可能的,因为这些指标不是来自实例内部。突发平衡由 EBS 而不是 EC2 维护。具体在基础设施的哪个位置计算并没有记录,但无论如何它都位于您的 VM 外部。

可以使用 来从实例内部以高粒度观察 I/O iostat。我发现这些参数-x 1很有用。最右边的 % 指标可以指示实例根据等待时间对驱动卷的难度的感知。

接近 100% 的数字意味着你已经饱和某物尽管这是多种因素的复杂组合。当从快照创建 EBS 卷并且仍在预热时,即使您只看到 5 到 10 MB/s 的吞吐量,也经常会看到接近 100% 的利用率,因为您正在饱和的是 EBS 内部的预热过程(它将块从快照数据加载到卷上;此后台任务允许如此快速地从快照创建大型卷 - 数据在逻辑上位于新卷上,但可能尚未物理地位于新卷上)。即使卷本身具有可用的空闲容量,使实例的以太网带宽饱和到 EBS 也会导致较高的 % 值。


额外奖励:这是我想到的一个小程序,它显示iostat的内容更像“控制台”视图,而不是连续滚动屏幕。它使用系统 perl 添加一些 ansi 转义序列来重新格式化输出。在 Ubuntu 上可以按编写的方式运行,在 Amazon Linux 上可能也可以。运行iostat似乎不会对系统造成任何有意义的负载,因此在任何服务器上使用都应该是安全的。

iostat -x 1 | perl -pe 'BEGIN { $_ = 1; print "\e[1;1H\e[0J" } print "\e[3;1H" if /^avg\-cpu/; chomp; $_ .= "\e[0K\n"'

相关内容