我们在 AWS EC2 上有 T2 实例 (Linux 4.9.20-11.31.amzn1.x86_64),它们由于磁盘读取而耗尽了 i/o 信用。很可能我们在这些节点上进行了过多的读取,因此这本身并不奇怪,但节点上进程的结果相当奇怪。atop
(v 1.27) 捕获正常的、预期的小读取流,直到 i/o 信用耗尽,然后atop -d 30
开始长时间看起来像这样:
PID TID RDDSK WRDSK WCANCL DSK CMD
10616 - 432.2M 0K 0K 24% consul
27629 - 313.3M 0K 0K 17% chef-client
27795 - 306.5M 0K 0K 17% python
27803 - 132.6M 0K 0K 7% crond
consul
或crond
(以及其他样本中的named
,dhclient
甚至)突然决定要读取数百 MB 的数据,而之前几个小时的读取量很少,这种情况似乎不太可能发生init
。这种行为持续了大约一个小时,在此期间,各种进程读取了 100 多 MB 的数据。
对于通常表现良好的进程,这些高数字可以解释什么?我认为atop
这些/proc/X/io
read_bytes
数字对于实际的 EBS 活动来说应该是相当准确的?