1.查询pci显卡信息: lspci |grep VGA
2.查看设备由什么驱动管理使用:lspci -vv -s <01:00.0> | grep driver
3.从默认驱动程序解绑设备
方案一 使用libvirt的命令
$ virsh nodedev-list | grep pci #查询设备ID
$ virsh nodedev-dumpxml pci_0000_01_00_0 #查询当前使用的驱动程序
$ virsh nodedev-detach pci_0000_01_00_0 #解绑当前设备
$ virsh nodedev-detach pci_0000_01_00_1 #解绑audio
方案二 配置GRUB_CMDLINE_LINUX(实测,有效)
1)查询需要解绑的设备
2) 修改
/etc/default/grub文件的GRUB_CMDLINE_LINUX
3)更新grub2 conf,执行如下命令:
BIOS grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
4)重启系统 reboot
方案三:
$ modprobe pci_stub
$ echo “10de 0a65” > /sys/bus/pci/drivers/pci-stub/new_id
$ echo “10de 0be3” > /sys/bus/pci/drivers/pci-stub/new_id
$ echo 0000:01:00.0 > /sys/bus/pci/devices/0000\:01\:00.0/driver/unbind
$ echo 0000:01:00.1 > /sys/bus/pci/devices/0000\:01\:00.1/driver/unbind
$ echo 0000:01:00.0 > /sys/bus/pci/drivers/pci-stub/bind
$ echo 0000:01:00.1 > /sys/bus/pci/drivers/pci-stub/bind
4.其他
默认情况下,KVM将虚拟机的操作作为虚拟处理器的多个线程运行(The default behavior for KVM guests is to run operations coming from the guest as a number of threads representing virtual processors)。这些线程由Linux调度程序管理,如同其他线程一样。并根据 niceness 和 priority 分配给任何可用的CPU核心。因此,当线程切换到另一个核心时,核心的高速缓存将无法发挥作用,这可能会显著影响虚拟机的性能。CPU核心固定旨在解决这些问题,因为它会忽略Linux的线程调度并确保虚拟机的线程始终在特定的内核上运行。例如客户机的核心 0,1,2分别映射到宿主机的 4,5,6 核心。
注意: 某些启用CPU核心固定的用户可能会遇到卡顿和短暂挂起的问题。尤其是在使用MuQSS调度程序的情况下(存在与linux-ck内核和linux-zen内核)。如果遇到类似的问题,您可能需要首先禁用固定,保证始终具有最大的即时响应性能。
CPU 拓扑
现代CPU都支持硬件多任务处理,即 Intel CPU 上的超线程或 AMD CPU 上的 SMT。 超线程/SMT 让一个物理核心具有两个虚拟线程。您需要根据虚拟机和宿主机的用途来设置 CPU 核心固定。
要查看您的 CPU 拓扑,运行 lscpu -e:
注意: 需要特别注意 "CORE" 栏,它表明了虚拟核心和物理核心的对应关系。
lscpu -e
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 是 1200.0000 600.0000
1 0 0 1 1:1:1:0 是 1200.0000 600.0000
阅读(7051) | 评论(0) | 转发(0) |