一、CPU资源分配
virsh vcpucount <虚拟机名称>查看当前vCPU状态,使用virsh setvcpus <虚拟机名称> <数量> --config永久调整最大vCPU数,virsh setvcpus <虚拟机名称> <数量> --live动态调整当前vCPU数(需宿主机和虚拟机支持热插拔)。virsh edit <虚拟机名称>修改XML配置,添加<cputune>标签,设置<vcpupin>元素指定vCPU与物理核心的映射关系(如<vcpupin vcpu="0" cpuset="0"/>表示vCPU 0绑定到物理核心0)。virsh edit <虚拟机名称>添加<numatune>标签,设置<memory mode="strict" nodeset="0"/>(将虚拟机内存限制在NUMA节点0)。二、内存资源分配
virsh dominfo <虚拟机名称>查看当前内存分配,使用virsh setmem <虚拟机名称> <大小> --config永久调整最大内存,virsh setmem <虚拟机名称> <大小> --live动态调整当前内存(需虚拟机支持内存气球驱动)。<memballoon model='virtio'/>,并在虚拟机操作系统中安装驱动(Linux系统通常默认包含)。通过virsh domstats --balloon <虚拟机名称>查看气球统计信息(如balloon.current表示当前气球大小)。/etc/default/grub文件,添加transparent_hugepage=always,然后执行update-grub并重启系统。三、存储资源分配
virt-xml <虚拟机名称> --edit --disk path=<磁盘路径>,format=qcow2>修改磁盘格式。/boot 500M、swap 1.5-2倍物理内存(不超过8G)、/ 剩余空间;数据库场景:/boot 500M、swap 1.5-2倍物理内存、/ 50-200G、/data 剩余空间(存放业务数据))。使用LVM(逻辑卷管理)实现分区在线扩容(如通过pvcreate、vgextend、lvextend命令扩展逻辑卷)。Gparted工具(sudo apt install gparted)将未分配空间分配给对应分区(如/dev/sda3),并调整文件系统大小(如resize2fs /dev/sda3)。四、网络资源分配
virt-xml <虚拟机名称> --edit --network model=virtio,driver=igb配置SR-IOV网卡)。需宿主机网卡支持SR-IOV功能。五、操作系统层面优化
vm.swappiness(默认60,建议设置为10-20)减少swap使用频率,提升net.core.somaxconn(默认128,建议设置为1024)增加连接队列上限,减少网络连接拒绝。通过sysctl -w <参数>=<值>临时修改,编辑/etc/sysctl.conf永久生效。systemd-analyze blame命令查看启动耗时较长的服务,禁用或延迟加载(如systemctl disable <服务名称>)。