Linux上的OpenBSD或者FreeBSD KVM guest虚拟机的性能问题

时间:2020-01-09 10:43:42  来源:igfitidea点击:

我在KVM下运行了几台OpenBSD和FreeBSD来宾/虚拟机。
我的服务器有32GB内存和4C/8T Intel Xeon CPU。
在最近的CentOS Linux 7内核更新之前,一切工作正常。
重新启动我的CentOS 7 Linux机器后,OpenBSD和FreeBSD机器变得非常慢,并且在24小时后停止响应网络请求。
在CentOS 7 KVM上运行的BSD系列oses如何解决重大的性能问题?
基于内核的虚拟机(KVM)是内置在Linux内核中的管理程序。
借助KVM安装,CentOS Linux版本7可以变成管理程序。
一个可以运行多个虚拟机/来宾VM,它们运行未经修改的GNU/Linux,* BSD系列操作系统,例如OpenBSD,NetBSD,FreeBSD,MS-Windows或者更多。

解决了OpenBSD或者FreeBSD KVM guest虚拟机的性能降低问题

在CentOS Linux内核更新(重新引导)之后,基于OpenBSD和FreeBSD的虚拟机看起来非常缓慢。
您可以运行简单的命令,例如date或者sleep,以在KVM下运行的基于BSD的系统上验证此交易问题:

time date
time sleep 1
time sleep 5

sleep 1命令最多需要5-10秒才能完成。
自然,这很烦人,一两天后,我基于OpenBSD的系统完全停止了响应。

kvm_intel的解决方案

在基于Intel的CPU上加载kvm模型时,您需要禁用kvm_intel.preemption_time。
您需要在/etc/modprobe.d中创建一个名为kvm.conf的文件。
使用文本编辑器(例如vim或者vi或者nano)创建文件:

# vim /etc/modprobe.d/kvm.conf

追加以下

options kvm_intel preemption_timer=N

保存并关闭vim/vi中的文件。
接下来,您需要使用重新启动命令或者关闭命令重新启动CentOS Linux 7.x服务器:

# reboot

或者

# shutdown -r 0

验证

使用cat命令,如下所示:

$ cat /sys/module/kvm_intel/parameters/preemption_timer

使用ssh命令或者virsh命令登录基于OpenBSD/FreeBSD的VM:

$ ssh Hyman@openbsd-kvm-vm-ip

或者

# virsh console openbsd63-vm1

随着时间在VM内运行命令:

$ time sleep 1
$ time sleep 5
$ time date
$ ping -c 2 theitroad.local

现在一切正常,您的VM可以保持运行并运行数天,或者直到重新启动内核/硬件更新服务器/VM。