kvm虚拟机管理及性能优化(代码片段)

author author     2022-12-21     557

关键词:

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命令管理虚拟机与性能优化(代码片段)

KVM命令管理虚拟机1、KVM基本功能管理简要介绍KVM中经常使用的基本功能管理命令(CentOS7.4是宿主机中安装的虚拟机);1)、virsh-h#查看命令帮助2)、ls/etc/libvirt/qemu#查看KVM的配置文件存放目录(虚拟机系统实例配置文件的文件... 查看详情

kvm虚拟化技术详解--kvm的优化(代码片段)

目录:(4.1)KVM虚拟机性能优化思路及方案(4.2)利用tuned优化(4.3)配置KSM(4.4)通过配置大页优化guestos(4.5)配置CPU的亲和性(4.6)半虚拟化驱动(4.1)KVM虚拟机性能优化思路及方案通过前面的学习我们已经可以正常的创建虚... 查看详情

实操kvm虚拟机的优化历程---按需优化(代码片段)

一、KVM为什么要调优性能的损耗是矛盾的根源,KVM采用全虚拟化技术,全虚拟化要由一个软件来模拟硬件层,故有一定的损耗,特别是I/O输入输出。KVM性能优化主要在CPU、内存、I/O这几方面,当然在这几方面也是要分场景的,不... 查看详情

kvm性能优化(代码片段)

...ost机内容相同的内存合并,以节省内存的使用,特别是在虚拟机操作系统都一样的情况下,肯定会有很多内容相同的内存值,开启了KSM,则会将这些内存 查看详情

kvm虚拟机性能调优(代码片段)

kvm虚拟机性能调优kvm性能优化,主要集中在cpu、内存、磁盘、网络,4个方面,当然对于这里面的优化,也是要分场景的,不同的场景其优化方向也是不同的,下面具体聊聊这4个方面的优化细节。1.CPUcpu优... 查看详情

kvm性能优化(代码片段)

...ng0,这样的切换(系统调用)称为上下文切换。物理机到虚拟机多次的上下文切换,势必会导致性能出现问题。对于全虚拟化,inter实现 查看详情

kvm性能优化(代码片段)

一、KVM为什么要调优性能的损耗是关键。KVM采用全虚拟化技术,全虚拟化要由一个软件来模拟硬件,故有一定的损耗,特别是I/O,因此需要优化。KVM性能优化主要在CPU、内存、I/O这几方面。当然对于这几方面的优化,也是要分场... 查看详情

部署kvm虚拟化平台------搭建(代码片段)

一、部署KVM虚拟化平台hyper-v是windows中的虚拟化1、KVM模块直接整合在Linux内核中,kvm是内核模块,虚拟机与kvm模块之间为管理工具2、KVM组成1.KVMDriver---虚拟机创建---虚拟机内存分配---虚拟CPU寄存器读写---虚拟CPU运行2.QEMU(经过简化... 查看详情

kvm虚拟机创建及常用管理(代码片段)

安装kvm支持库,qemu也是一款虚拟软件,但是只在kvm里虚拟网络、磁盘等io信息yuminstall-yqemu-kvmqemu-key-toolsvirt-managerlibvirtvirt-installpython-virtinstbridge-utils创建磁盘-f指定磁盘格式为rawqemu-imgcreate-fraw/opt/Centos-7-x86_64.raw10G开机自启动systemc... 查看详情

kvm虚拟化的优化(代码片段)

KVM调优思路性能的损耗是矛盾的根源,KVM采用全虚拟化技术,全虚拟化要由一个软件来模拟硬件层,故有一定的损耗,特别是I/O输入输出。KVM性能优化主要在CPU、内存、I/O这几方面,当然在这几方面也是要分场景的,不同场景优... 查看详情

kvm网络性能调优(代码片段)

首先,我给大家看一张图,这张图是数据包从虚拟机开始然后最后到物理网卡的过程。我们分析下这张图,虚拟机有数据包肯定是先走虚拟机自身的那张虚拟网卡,然后发到中间的虚拟化层,再然后是传到宿主机里的内核网桥中... 查看详情

[转帖]kvm性能测试报告(代码片段)

...试试图找出以下问题的答案:      1.虚拟机相对于物理机性能损失有多严重(CPU/MEM/NET/DISK)       2.对于多个虚拟机,KVM对资源的分配是否公正      3.找出性能最好... 查看详情

kvm的管理命令(代码片段)

KVM使用virsh的日常管理命令:1>查看kvm虚拟机配置文件及运行状态kvm虚拟机的配置文件位置:/etc/libvirt/qemu/kvm虚拟机开机自启动目录:/etc/libvirt/qemu/networks/autostart/virsh的帮助信息:[[email protected]~]#virsh-help进入virsh的交互界面... 查看详情

kvm虚拟化专题kvm及libvirt架构(代码片段)

...MU成为KVM在用户空间的管理工具,及KVM运行在内核空间负载虚拟机调用物理资源的请求处理,QEMU则在用户空间处理用户下达给虚拟机的各种指令从架构上看KVM属于宿主模型,因为Linux设计之初并内有针对虚拟化的支持,KVM是以内核... 查看详情

kvm管理虚拟机(代码片段)

笔记内容:KVM管理虚拟机笔记日期:2018-03-0828.9克隆虚拟机28.10快照管理28.11磁盘格式28.12磁盘扩容(raw)28.13磁盘扩容(qcow2)28.14调整cpu内存和网卡28.15迁移虚拟机在上一篇中,我们介绍了如何在CentOS7上安装并配置KVM,以及通过KVM安装... 查看详情

kvm虚拟机性能调优(代码片段)

kvm虚拟机性能调优kvm性能优化,主要集中在cpu、内存、磁盘、网络,4个方面,当然对于这里面的优化,也是要分场景的,不同的场景其优化方向也是不同的,下面具体聊聊这4个方面的优化细节。1.CPUcpu优... 查看详情

centos7上kvm虚拟化平台搭建及管理,图文并茂,详细易懂~~(代码片段)

何为虚拟化:虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO硬件资源,但逻辑上虚拟机之间是相互隔离的。物理机我们一般称为宿主机(Host),宿主... 查看详情

kvm管理命令(代码片段)

上一次主要介绍了KVM虚拟机的安装,这次主要介绍KVM虚拟机的管理。这一次主要是KVM的一些操作命令,比如虚拟机的开启,删除,恢复,挂起以及重新定义虚拟机。相关命令开关机#virshlist//查看虚拟机状态#virshlist--all//查看所有... 查看详情