让宿主机运行操作系统时候,更多的选择指定的几个核,这样就不会过多抢占虚拟化中虚机的vcpu调度,通过修改内核启动参数我们可以做到:
修改 /etc/default/grub文件,让系统只使用前三个核 隔离其余核。
GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31"
更新内核参数
# update-grub
# reboot
内存配置方面,网易私有云的实践是关闭 KVM 内存共享,打开透明大页:
echo 0 > /sys/kernel/mm/ksm/pages_shared
echo 0 > /sys/kernel/mm/ksm/pages_sharing
echo always > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag
据说,经过 SPEC CPU2006 测试,这些配置对云主机 CPU 性能大概有7%左右的提升。