如何确认 AWS 中的 CPU 窃取?

如何确认 AWS 中的 CPU 窃取?

在我的 48 台服务器中,有一台消费者的速度始终比所有其他消费者慢。

它运行相同的代码,我甚至手动让它处理相同的流量,但我发现它比所有其他消费者都慢,

我们怀疑存在硬件问题或 CPU 窃取(因为它总是使用 100% 的 CPU,而其他的在流量相同的情况下只使用 50%)

有什么方法可以确认没有发生 CPU 窃取事件?

以下是 top 的一些输出

top - 20:38:28 up 10 days,  1:57,  2 users,  load average: 31.38, 24.56, 28.36
Tasks: 443 total,   1 running, 442 sleeping,   0 stopped,   0 zombie
%Cpu(s): 90.5 us,  4.0 sy,  0.0 ni,  4.6 id,  0.1 wa,  0.0 hi,  0.8 si,  0.0 st
KiB Mem:  30871552 total, 17587808 used, 13283744 free,   286512 . buffers
KiB Swap:        0 total,        0 used,        0 free. 11353472 cached Mem

答案1

您可能可以通过执行涉及实例更改的操作来更改实例的硬件(例如,更改实例类型或部署新机器)。如果您停止并启动实例,则有很小的机会使用相同的硬件(但很简单,可以作为一个很好的测试)。

如果您怀疑问题可能出在 CPU 窃取上,您可以使用 iostat 命令的输出主动监视此参数。

请检查,如果您使用的是 t2 类型实例,则 CPU 信用指标将通过 cloudwatch 进行。

相关内容