CentOS 虚拟机资源管理实战指南
一 管理总览与前置检查
sudo yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-installsudo systemctl start libvirtd && sudo systemctl enable libvirtdegrep -c '(vmx|svm)' /proc/cpuinfo,返回值大于 0 表示支持。sudo yum install -y virt-top && sudo virt-top。二 CPU 资源管理
virsh vcpucount <vm>virsh setvcpus <vm> <N> --livevirsh setvcpus <vm> <M> --maximum --configvirsh vcpupin <vm> 0 --cpuset 1-4,^2cpu.cfs_quota_us=50000、cpu.cfs_period_us=100000 写入对应 cgroup,即可限制为约 50% 单核;将进程 PID 写入该 cgroup 的 tasks 文件生效。echo 0 > cpuset.cpus; echo 0 > cpuset.mems 后再写入 tasks。三 内存与交换分区管理
virsh dominfo <vm> | grep 内存virsh setmem <vm> <size_in_KiB> --livevirsh edit <vm>,调整 <memory unit='KiB'>…</memory>、<vcpu>…</vcpu> 等字段,保存后启动生效。dd if=/dev/zero of=/var/swapdata bs=1K count=4194304mkswap /var/swapdata && chmod 0600 /var/swapdata && swapon /var/swapdata/etc/fstab 追加 /var/swapdata swap swap defaults 0 0sysctl vm.swappiness=10(数值越大越倾向使用 swap,默认通常为 60;数据库等低延迟场景可适当降低)。四 磁盘与 I O 资源管理
echo "- - -" | sudo tee /sys/class/scsi_host/host*/scangrowpart /dev/sda 1xfs_growfs /resize2fs /dev/sda1lsblk;创建 PV/VG/LV:pvcreate /dev/sdb; vgcreate vg1 /dev/sdb; lvcreate -L 10G -n lv1 vg1mkfs.xfs /dev/vg1/lv1; mkdir -p /data; mount /dev/vg1/lv1 /data/etc/fstab 添加 /dev/vg1/lv1 /data xfs defaults 0 0virsh blkiotune <vm> --weight 700 --livevirsh blkdeviotune <vm> vda --total-bytes-sec 10485760 --total-iops-sec 30 --livevirsh attach-interface <vm> network default --inbound average=1000,peak=5000,burst=1024 --outbound average=128,peak=256,burst=256(单位 KB/s)五 性能优化与监控实践
virt-xml <vm> --edit --cpu host-model(ARM64 可用 --cpu host-passthrough)virt-xml <vm> --edit --vcpus placement=auto;virt-xml <vm> --edit --numatune mode=preferredecho 1 > /sys/kernel/mm/ksm/runecho always > /sys/kernel/mm/transparent_hugepage/enablednone/writeback)与 AIO 模式,可显著提升 I/O 性能。virsh dominfo、virsh vcpucount 等命令核对配置与运行状态,必要时做横向扩容或降配。