在小型 SSD VPS 上,我获得了 2 GB 的 RAM 和 2 个 vCPU 核心(专用于我的服务器),通过 KVM 虚拟化。到目前为止一切顺利。该服务器主要用于数据库(MySQL)和快速网络文件存储(通过 sshfs)。目前大约有 5 个文件夹通过 sshfs 安装到远程服务器。
当我查看时,htop
我可以看到 100% 的 CPU 负载,尽管按 CPU 使用率对进程进行排序时,没有一个进程单独或多个进程组合占用那么多的 CPU。此外,这load average
表明服务器主要处于休眠状态。从这个问题我发现蓝色的 CPU 条表示“低优先级线程”占用了 CPU。
我如何才能找出哪个进程正在耗尽所有 CPU 能力?它真的在消耗 CPU 能力吗?还是这只是 KVM 导致的视觉错误?sshfs 是否使用了无法从用户空间跟踪的 CPU 能力?
答案1
当您不使用 CPU 时,它们会被分配给其他虚拟机。这反映在“窃取”值中,这是大多数使用情况所在。您可能需要咨询您的提供商,以确保您确实优先使用两个 vCPU。或者只运行两个占用 CPU 的任务(如openssl speed
),并确保它们全部被使用。
答案2
根据图表,您占用的 CPU 时间较高,这可能会导致此问题。请将此问题报告给您的托管服务提供商,并询问他们有关将 VM 迁移到另一台主机的信息。
问题通常是由于虚拟机的并发性很高,导致 KVM 无法从主机获取 CPU 时间。
我想这也能解决你的 CPU 使用率过高的问题。