我有一个 Amazon EC2 t2.medium 实例,它显示非常奇怪的 CPU Steal Time 值,大多数是较大的负数,而且空闲 CPU 数也非常高。
有什么可以解释这些奇怪的数字吗?我们遗漏了什么系统更新/错误修复吗?
top - 13:36:23 up 51 days, 2:49, 1 user, load average: 0.35, 0.15, 0.12
Tasks: 97 total, 1 running, 96 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,56000.0%id,200.0%wa, 0.0%hi, 0.0%si,-3849124577280.0%st
Mem: 4047964k total, 3905488k used, 142476k free, 29760k buffers
Swap: 0k total, 0k used, 0k free, 269332k cached
答案1
我想是我自己发现的,这似乎是内核/Xen/Kvm 领域的一个错误,它自 Linux 内核 4.8 以来就出现了,并在 Linux 内核 4.11 中得到了修复。我们运行的是 4.9.x,所以我们受到了影响,然而这毕竟不是真正的窃取情况,而是由于内核中的数字溢出而导致的错误报告。
看https://0xstubs.org/debugging-a-flaky-cpu-steal-time-counter-on-a-paravirtualized-xen-guest/非常精彩的写作。