我在 GCP VM 上运行一项服务,该服务 CPU 性能随机非常低。文本文件上的 grep 和 tail 等命令通常需要一分钟才能开始显示即时输出。
上个月这种情况已经发生过 5 到 6 次,导致我们这边出现严重不稳定,对客户造成了影响。这件事的严重性无可厚非。
一些可能相关的细节:
- 机器是 C2D HighCPU 16 实例类型 (AMD EPYC Milan)
- 机器位于 europe-west1-b
- 图像是 Ubuntu 18 32 位图像。它没有服务,但我确实需要 32 位图像
- 有时(尤其是在出现这些问题时),我们有一个核心的使用率为 100%,但没有任何进程显示正在消耗它。我已附上屏幕截图
使用量激增- 每隔几秒就会发生一次峰值变化的核心。htop 上没有任何进程的 CPU 使用率超过 25%,但有一个核心的 CPU 使用率达到 100%。
有人遇到过这个问题吗?有人能建议我如何解决这个问题吗?
非常感谢
答案1
运行 htop 显示内核线程让我看到 kswapd0 正在使用所有 CPU,这导致服务器占用过多并且终端无响应。
然后我运行echo vm.swappiness=0 | sudo tee -a /etc/sysctl.conf
以禁止交换,然后echo 1 | sudo tee /proc/sys/vm/drop_caches
放弃 kswapd0 正在执行的操作。
这暂时解决了问题。我将继续调查为什么会调用 swap,因为我使用的是 14/32 GB 的 RAM,但除此之外问题已得到解决。