啟動 VM 時,archlinux 主機上所有進程的 CPU 核心關聯性都會重設為所有核心。當虛擬機器停止時也會發生同樣的情況。
我的虛擬機器使用 cpu pinning,但這直到幾個月前才發生。我嘗試用 virt-manager 和 virsh 啟動它,兩者都是這樣做的。
我一直在閱讀有關 cgroup 的內容,但它並沒有告訴我它會觸及親和力設定。
目前 libvirt 版本:1:7.5.0-1
有很多關於 cpu 隔離、核心屏蔽等遊戲虛擬機的主題,但我不明白為什麼應該重置正常的核心親和力。有沒有辦法找出造成這種情況的原因?我通常使用任務集來設定親和力。也許這應該是一項新功能,但我找不到。
答案1
確實是cgroup!
更準確地說是 cgroups2。這個「bug」可能是在我的發行版 Arch Linux 更改 cgroup 時引入的。
“即使在安裝時,也可以透過 /etc/libvirt/qemu.conf 設定檔明確關閉控制器的使用。”根據https://libvirt.org/cgroups.html#legacyLayout。但這對我來說根本不起作用。無論如何,它只是使用 cgroup 創建了 cpuset(我想知道為什麼)。
然而,這個問題對我來說已經解決了,因為我們可以建立沒有 cpusets(甚至根本沒有 cgroups)的核心。邊註:您可以安全地執行此操作,所有配置的核心固定都將保持良好狀態。
如果您對 libvirt 中的配置如何運作有更好的解決方案或見解,仍然歡迎您!