KVM虚拟机管理及性能优化

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      //通过配置文件启动虚拟机

KVM虚拟机管理及性能优化

  • 挂起和恢复

    # 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   //再删除

KVM虚拟机管理及性能优化

  • 通过备份恢复删除的虚拟机

    # 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虚拟机管理及性能优化

  • 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

KVM虚拟机管理及性能优化

  • 2:修改xml配置文件
  • 修改格式的类型 把raw 改为qcow2

    # 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>

    KVM虚拟机管理及性能优化

  • 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客户机配置文件

    KVM虚拟机管理及性能优化


  • 虚拟机克隆
  • 克隆一个虚拟机名字为test01

    # virt-clone -o CentOS7.4-x86_64 -n test01 -f /vdir/test01.qcow2      //从 CentOS7.4-x86_64 克隆 test01

KVM虚拟机管理及性能优化

  • 虚拟机快照
  • 创建快照、查看快照、恢复快照、删除快照

    # 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会将相同的内存合并
    内存分配的最小单位是 page(页面),默认大小是4KB。可以将host机内容相同的内存合并,以节省内存的使用,特别是在虚拟机操作系统都一样的情况下,肯定会有很多内容相同的内存值,开启了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 内存限制

    KVM虚拟机管理及性能优化

  • 设置强制最大内存

    virsh memtune test01 --hard-limit 1024000 --live    //设置强制最大内存100MB  在线生效

KVM虚拟机管理及性能优化


  • 3) :大页后端内存(开启->设置大页数量->挂载)
  • 提升大页后端内存,减少客户机消耗的内存并提高TLB命中率从而提升KVM性能
  • 我先解释什么叫大页。

所谓的大页指的是内存的大页面。当然,有大页面必然有对应的小页面… 我们知道内存采用的是分页机制,当初这个机制提出的时候,计算机的内存大小也就几十M,所以当时内存默认的页面大小都是4KB,那么这个4KB 也就是所谓的小页面。但是随着计算机的硬件发展,现在的内存基本上都是几十G 甚至上百G了,虽然,如果还是4KB小页的方式,那么必然会存在一些问题。那么会有哪些问题呢?操作系统如果还是小页存在,那么将会产生较多的TLB Miss和缺页中断,从而大大影响性能。

    # cat /proc/meminfo     //查看内存信息,无可用大页

KVM虚拟机管理及性能优化

    # echo 25000 > /proc/sys/vm/nr_hugepages     //指定大页需要的内存页面数(临时生效)
    # sysctl -w vm.nr_hugepages=25000     //效果和上面一样(永久生效)
    # cat /proc/meminfo | grep HugePage 

KVM虚拟机管理及性能优化

  • 编辑虚拟机的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        //重启服务
    # virsh start test01     //开启虚拟机

  • 3:I/O优化
  • 控制每台虚拟机对磁盘资源的消耗
  • 调整I/O的权重 ,权重越高写入磁盘的优先级越高。

    # virsh blkiotune test01        //查看权重
    # virsh blkiotune test01 --weight 500      //设置权重500  范围在100~1000
    # virsh blkiotune --help   //查看使用帮助 

KVM虚拟机管理及性能优化

  • 系统调优工具
  • 用来监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置,达到动态优化系统的目的。

    # yum install tuned -y      //安装tuned工具  
    # systemctl start tuned.service    //启动tuned工具
    # tuned-adm active   //查看当前优化方案
    # tuned-adm list   //查看预先设定好的优化方案

KVM虚拟机管理及性能优化

转载于:https://blog.51cto.com/13630803/2155913

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值