KVM虚拟机管理及性能优化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM虚拟机管理及性能优化相关的知识,希望对你有一定的参考价值。
KVM虚拟机管理及性能优化
本章接上一篇文章继续为大家讲解KVM的操作命令、KVM文件管理、虚拟机的克隆、虚拟机快照以及 KVM性能优化。
?
- 使用KVM命令集管理虚拟机
-
KVM关机开机命令
# virsh -h //查看命令帮助 # virsh list --all //查看虚拟机状态 # virsh shutdown CentOS7.4-x86_64 //关闭虚拟机 # virsh start CentOS7.4-x86_64 //启动虚拟机 # virsh destroy CentOS7.4-x86_64 //强制关机 # virsh create /etc/libvirt/qemu/CentOS7.4-x86_64.xml //通过配置文件启动虚拟机
?
-
挂起和恢复
# virsh suspend CentOS7.4-x86_64 //挂起虚拟机 # virsh resume CentOS7.4-x86_64 //恢复虚拟机
-
设置随宿主机开机自启动
# virsh autostart CentOS7.4-x86_64
-
导出虚拟机配置
# virsh dumpxml CentOS7.4-x86_64 > /etc/libvirt/qemu/test01.xml
-
删除虚拟机
# virsh shutdown CentOS7.4-x86_64 //先关闭 # virsh undefine CentOS7.4-x86_64 //再删除
?
-
通过备份恢复删除的虚拟机
# cd /etc/libvirt/qemu/ # mv test01.xml CentOS7.4-x86_64 # virsh define CentOS7.4-x86_64 //重新定义虚拟机
-
修改配置文件
# virsh edit CentOS7.4-x86_64 # vim /etc/libvirt/qemu/CentOS7.4-x86_64.xml
?
- KVM文件管理
- 通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如:系统因为配置问题无法启动时,可以直接修改虚拟机的文件。虚拟机的磁盘文件有 raw和 qcow2 两种格式。 KVM默认格式是raw,raw格式性能最好、速度最快,其缺点是不支持一些新的功能,如镜像、Zlib磁盘压缩、AES加密等。
- 这里介绍本地yum安装的libguestfs-tools后产生的命令行工具(这个工具可以查看qcow2格式的磁盘文件)
?
-
1:转换raw格式磁盘文件至qcow2格式
?# yum install libguestfs-tools -y //安装命令行工具 # qemu-img info /vdir/CentOS-7.4-x86_64.img //查看当前磁盘格式 关机后 磁盘转换成qcow2格式 # virsh shutdown CentOS7.4-x86_64 # qemu-img convert -f raw -O qcow2 /vdir/CentOS-7.4-x86_64.img /vdir/CentOS-7.4-x86_64.qcow2
?
-
2:修改xml配置文件
?# virsh edit CentOS7.4-x86_64 //编辑xml配置文件 <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type=‘file‘ device=‘disk‘> <driver name=‘qemu‘ type=‘qcow2‘/> #修改qcow2 <source file=‘/vdir/CentOS-7.4-x86_64.qcow2‘/> #修改qcow2 <target dev=‘vda‘ bus=‘virtio‘/> <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x06‘ function=‘0x0‘/> </disk>
?
-
3:命令使用
virt-cat 命令类似cat
virt-edit 命令用于编辑文件,用法与vim基本一致
virt-df 命令用于查看虚拟机磁盘信息
?# virt-cat -a /vdir/CentOS-7.4-x86_64.qcow2 /etc/hostname //查看虚拟机主机名 # virt-df -h CentOS7.4-x86_64 //查看虚拟机挂载磁盘信息 # virt-edit -a /vdir/CentOS-7.4-x86_64.qcow2 /etc/resolv.conf //编辑DNS客户机配置文件
?
? -
虚拟机克隆
# virt-clone -o CentOS7.4-x86_64 -n test01 -f /vdir/test01.qcow2 //从 CentOS7.4-x86_64 克隆 test01
?
-
虚拟机快照
# virsh start test01 # virsh snapshot-create test01 //创建快照 # virsh snapshot-current test01 //查看快照版本信息 # virsh snapshot-list test01 //查看快照信息 # virsh snapshot-revert test01 1533636617 //恢复虚拟机至1533636617 # virsh snapshot-delete test01 1533636876 //删除快照
?
?
?
-
KVM性能优化
KVM的优化思路及步骤?
KVM采用全虚拟化技术,全虚拟化要由一个软件来模拟硬件层,故有一定的损耗,特别是I/O,因此需要优化。 -
1:CPU优化
所有guestcpu 不要超过物理机的CPU总数,建议复制主机CPU配置。 - 2:内存优化
-
1) :KSM(相同页合并)开启KSM会将相同的内存合并
# cd /sys/kernel/mm/ksm/ //这个目录可查看内存页共享的情况 # ll //查看 pages_shared 记录了KSM共享的总页面数 pages_sharing 文件中记录了当前共享页面数 # echo 1 > run //临时开启KSM 或者可以在/etc/rc.local 添加 echo 1 > /sys/kernle/mm/ksm/ 开机自启动 # cat run //查看KSM是否开启 0为关闭 1为开启 # echo 1000 > pages_to_scan // 决定每次查看多少个页面 默认100 最大不超过2000 越大越好
- 2) :对内存设置限制
-
为了防止某个虚拟机无节制的使用资源
# virsh memtune test01 //查看虚拟机test01 内存限制
? -
设置强制最大内存
virsh memtune test01 --hard-limit 1024000 --live //设置强制最大内存100MB 在线生效
?
?
- 3) :大页后端内存
-
提升大页后端内存,减少客户机消耗的内存并提高TLB命中率从而提升KVM性能
# cat /proc/meminfo //查看内存信息,无可用大页
# echo 25000 > /proc/sys/vm/nr_hugepages //指定大页需要的内存页面数(临时生效) # sysctl -w vm.nr_hugepages=25000 //效果和上面一样(永久生效) # cat /proc/meminfo | grep HugePage
?
-
编辑虚拟机的XML配置文件来使用大页分配内存
virsh destroy test01 //关闭虚拟机 # virsh edit test01 //编辑xml配置文件 <currentMemory unit=‘KiB‘>2097152</currentMemory> <memoryBacking><hugepages/></memoryBacking> //添加使用大页 <vcpu placement=‘static‘>1</vcpu> # mount -t hugetlbfs /dev/hugepages/ //挂载hugetlbfs文件系统 # systemctl restart libvirtd.service //重启服务
?
- 3:I/O优化
- 控制每台虚拟机对磁盘资源的消耗
-
调整I/O的权重 ,权重越高写入磁盘的优先级越高。
# virsh blkiotune test01 //查看权重 # virsh blkiotune test01 --weight 500 //设置权重500 范围在100~1000 # virsh blkiotune --help //查看使用帮助
?
- 系统调优工具
-
用来监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置,达到动态优化系统的目的。
# yum install tuned -y //安装tuned工具 # systemctl start tuned.service //启动tuned工具 # tuned-adm active //查看当前优化方案 # tuned-adm list //查看预先设定好的优化方案
以上是关于KVM虚拟机管理及性能优化的主要内容,如果未能解决你的问题,请参考以下文章