我使用 qemu 和 kvm 作为我的虚拟机管理程序。我在 ubuntu 主机上运行 gentoo 客户端。客户端被赋予单个处理器。
当我运行计算密集型作业(例如空循环)时,客户机和主机的 CPU 使用率几乎达到 100%。但是,当我播放高分辨率视频(1080p)时,我看到客户机的 CPU 使用率高达 100%,而主机的平均 CPU 使用率仅为 30-40%。我想知道是什么原因造成的。
如果该过程受磁盘限制,那么我相信第二次播放视频会改善主机与客户机的 CPU 使用率,因为视频将被提取到主内存(视频大约 1 分钟,40 MB,客户机内存为 4 GB),但这并没有发生。那么是什么原因导致 CPU 使用率出现这种差异?
我不完全理解 vlc 如何处理 H264 视频。它报告说丢帧可能是由于计算机速度慢。我唯一的猜测是,也许涉及显卡,qemu 正在等待它,而客户机不知道这种等待。
我的主机有 12 个核心和 24GB 的 RAM。
编辑 :
这个问题与运行虚拟机无关。这是因为我通过 SSH 访问我的测试机器。X11 转发导致我的 qemu 进程性能严重下降。也许这类似于普通程序在 printf 语句过多时变慢的情况。在我的案例中,网络成为了瓶颈。