![使用 top 监控 Virtualbox 的 CPU 使用情况](https://linux22.com/image/1369611/%E4%BD%BF%E7%94%A8%20top%20%E7%9B%91%E6%8E%A7%20Virtualbox%20%E7%9A%84%20CPU%20%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5.png)
我正在使用top
Linux 中的命令密切关注正在运行 VM 的 Virtualbox。
服务器中当前的 CPU 是四核 Xeon 处理器 3.3 Ghz,我只为 VM 分配了一个核心。
我的问题是,如果top
报告称 Virtualbox 进程消耗了 30% 的 CPU,这是针对我分配给 VM 的单个核心,还是针对所有 4 个核心?
如果 VB 占用了整个 CPU 的 30%,我想我可能需要为 VB 分配更多核心。客户报告称,他们的客户端计算机在访问数据库时不断冻结。
答案1
默认情况下,top
报告使用百分比为单身的CPU。这与 VirtualBox 设置无关,这是它的top
工作原理,并且对于所有程序都一样。这就是为什么您经常看到 CPU 使用率超过 100% 的原因top
。看看我的答案这里更多细节。
您可以在运行时点击(大写 I),top
以总 CPU 功率(所有核心)的百分比显示 CPU% 。Itop
编辑以回答您的评论:
因此,如果所有 4 个核心都达到最大值,我是否会看到 CPU 使用率飙升至 400%?
对,就是这样。
如果我看到所有进程的总使用率为 30%,这是否意味着只有单个核心的使用率为 30%?
再次强调,是的,确实如此。嗯,几乎完全一样。它不是单个核心的 30%,因为不同的进程可以在不同的核心上运行。如果您看到总使用率为 30%,这意味着所使用的总处理能力相当于单个核心的 30%。这可能意味着您有一个核心占 10%,两个核心占 5%,一个核心占 20%。而且我还猜测这实际上并不能反映在 VB 下运行的 VM 的 CPU 使用率?
不确定你的意思。VirtualBox 的使用率
top
是多少单身的核心是 VBox 当时使用的。这与虚拟机的虚拟的CPU 正在使用中。要查看该信息,您需要使用在客户操作系统上运行的软件。
答案2
如果你有权访问主机系统,VBoxManage 指标易于使用:
vboxmanage metrics setup --period 1 --samples 1 "*" "*CPU/*"
配置将捕获哪些指标以及针对哪个系统/虚拟机。
然后:
vboxmanage metrics collect "*" "*CPU/*:avg"
将显示主机上以及每个正在运行的虚拟机的处理器使用情况的汇总。
请注意,为了查看Guest/*
统计数据,你可能需要安装新增嘉宾在每个虚拟机上。