当前位置:首页 > 虚拟机 > 正文

kvm虚拟机效率


一、虚拟化技术—QEMU-KVM基于内核的虚拟机

探索虚拟化的顶层:QEMU-KVM的基础和高效运行


QEMU-KVM作为与Linux内核集成的高效虚拟化解决方案,其核心是TYPE1Hypervisor,采用硬件辅助虚拟化技术,与Linux内核紧密配合,凸显其卓越的性能和资源管理能力。要了解KVM,首先要知道它是如何利用硬件支持作为内核模块来提供对虚拟环境的控制和优化,以保证兼容性和效率。


2007年,KVM正式加入Linux家族,支持多核架构(SMP)和NUMA,功能扩展到LiveMigration和KernelSame-pageMerging(KSM),显着提高了虚拟化性能。机器动力学。迁移和内存管理效率。启动时,KVM内核模块以RootMode启动,通过UserApplicationQEMU,像魔术一样模拟虚拟硬件,为虚拟机提供服务。


QEMU,由天才开发者FabriceBellard于2001年推出,名为TYPE2Hypervisor,依靠动态二进制翻译技术来兼容各种CPU架构和设备模拟,虽然性能略低于KVM虽然QEMU的灵活性较差,但QEMU的灵活性使其可以与KVM结合,催生了强大的分支QEMU-KVM,两者都推动了虚拟化技术的创新。


KVM软件组件包括:内核模块、QEMU开源虚拟机管理器、AWS、阿里云等云服务商使用的QEMU-KVM以及virtio驱动程序共同构建为虚拟化技术奠定了坚实的基础。


虽然QEMU-KVM分支是QEMU的一部分,但在KVM环境中,我们更喜欢称QEMU为KVM执行引擎。KVM智能工作。驻留在内核空间,通过/dev/kvm与用户空间实时交互,并提供libkvm库。QEMU通过open、close和ioctl等系统调用访问KVM接口,进行CPU、内存和I/O虚拟化,而VM管理和I/O模拟则由QEMU独立处理。


创建虚拟机的过程就像一门艺术一样精确:首先打开/dev/kvm,通过ioctl命令创建虚拟机,并配置硬件抽象层(HVA)和物理地址(HPA),并模拟PCI设备。然后映射QEMU映像、构建vCPU并启动GuestOS。在此过程中,主线程不断监听VM退出事件,以响应虚拟环境中的设备中断和访问。


当中断页面错误或设备访问触发退出事件时,KVM接管CPU,Linux内核通过ioctl与QEMU交互,以管理虚拟机及其vCPU。KVM支持三种操作模式:User、Kernel(root模式)和Guest(非root模式)。QEMU通过/dev/kvm实现内存虚拟化,并创建全局页表(GPA)映射以确保GuestOS隔离。对于I/O虚拟化,QEMU负责模拟设备并捕获I/O请求,构建QEMU-KVM架构,该架构由vCPU、虚拟内存、虚拟I/O和GuestOS构建而成,形成独特的用户进程结构。


QEMU-KVM架构经过智能设计,vCPU在HostOS调度下由GuestOS和HostOS共同管理,形成两级调度:GuestOS负责顶层。HostOS(LinuxScheduler)负责涉及vCPU线程、QEMU线程和物理CPU的低级调度。KVM支持SMP和NUMA,允许用户自定义虚拟机的vCPU布局,以确保迁移过程中CPU模型的安全。


通过-qemu-kvm命令,开发者可以自定义VMCPU配置并选择自定义型号和特性,但需要注意的是,软件模拟可能会影响性能。默认使用-host模式,磁盘设备选项丰富多样,包括文件路径、接口类型、索引、格式等。-boot等启动选项用于指定启动设备,并根据架构支持不同的字符标识符。QEMU的网卡模拟功能强大,支持各种类型的网卡、MAC地址和VLAN,甚至可以通过Tap接口连接到物理网络,并支持用户态网络布局设计。


QEMU-KVM是虚拟化技术的卓越之旅,以卓越的性能和灵活性引领我们探索更高级别的计算世界。无论是基本配置还是高级功能,QEMU-KVM以优秀的工程设计为云计算和虚拟化环境提供了强有力的支持。


二、VMware和kvm哪个作为linux的虚拟机更好物理环境
4G内存、CPU4、120G动态硬盘
KVM:
硬盘测试
即时读取速度
Timingcachedreads:23668MBin2.00seconds=11858.17MB/s
Timingbuffereddiskreads:294MBin3.02秒=123.37MB/秒
硬盘1G数据读取速度
1024000000bytes(1.0GB)复制,87.253秒,11.7MB硬盘速度数据
1024000000字节(1.0GB)复制,10.5519秒,97.0MB/s
CPU测试
二级缓存
Cat/proc/cpuinfo
缓存:32KB
需要13运行shell计数脚本所需的分钟
CPU:5.5%us,0.6%sy,0.0%ni,93.3%id,0.1%wa,0.4%hi,0.1%si,0.0%st
CPU(s):0.1%us,0.2%sy,0.0%ni,98.8%id,0.0%wa,0.0%hi,0.0%si,0.0%st
CPU利用率在0.1%~5.5%,相对内存和swap分区的增减都比较稳定
内存使用测试
运行一个消耗内存的程序,执行时间为3分钟,内存立即消耗到最大
内存:3945756ktotal,2854516kused,1091240kbuffers
交换:1020088ktotal,1020080kfree,2020080kfree,200080k0088ktotal,100kused,1019988kfree,3645968k缓存

立即硬盘读取:
Timingcachedreads:24068MBin2.00秒=12058.10MB/秒
Timingbuffereddiskreads:790MBin3.00秒=263.06MBin2.00MB/秒速度
复制1024000000字节(1.0GB),70,1827秒14.6MB/秒。>1G数据写入硬盘速度
复制1024000000字节(1.0GB),4.5338MB/秒。>CPU二级缓存
Cat/proc/cpuinfo
cachesize:8192KB
运行一个shell计算脚本需要10分钟
Cpu(t):4.9%us,0.7%sy,0.0%ni,94.1%id,0.1%wa,0.0%hi,0.1%si,0.0%st
CPU:0.0%us,0.0%sy,0.0%ni,99.7%id,0.2%wa,0.0%hi,0.0%si,0.0%st
处理器使用率
CPU使用率在0.1%~~4.9%之间,内存有轻微波动,交换分区相对稳定
内存用法
运行消耗内存的程序,执行时间5分钟,慢慢消耗内存到最大
Mem:4044464ktotal,2974892kused,1069572kfree,56892kbuffers<10208,Swapkutal:,1020072kfree,2605660kcheched
/>内存:4044464ktotal,4016472kused,27992kfree,12296kbuffers
交换:1020088ktotal,1124464ktotal。总:
Kvm内存使用效率比较高,硬盘写入速度很快,CPU占用稳定且比较低
VMware内存使用效率不高,磁盘读写速度太慢速度快且CPU占用率高,vmware的性能比RedHat的kvm稍好一些。
但这种比较只是性能方面的,在开发过程中,开发工具或环境的专业性和便捷性更重要
KVM提供的虚拟化需要硬件支持,并且完全基于硬件。虚拟化。自Linux2.6.20以来,它已被集成到所有主要的Linux发行版中。它使用Linux自带的调度器进行管理,因此与Xen相比,它的源代码非常小。KVM现已成为学术界领先的VMM之一。
并且KVM是免费的开源GPL软件,是对Linux的补充。因此,就我个人的看法,KVM在Linux开发上相对更专业一些。


三、关于kvm虚拟机的问题,困扰很久,求助高手

Kernel-basedVirtualMachine的缩写,是一个开源系统虚拟化模块,自Linux2.6.20以来已集成到所有主要Linux发行版中。它使用Linux自己的调度器进行管理,因此与Xen相比它的主要源代码非常小。KVM现已成为学术界最流行的VMM之一。

KVM虚拟化需要硬件支持(如IntelVT技术或AMDV技术)。这是完全基于硬件的虚拟化。Xen早期是基于软件模拟的半虚拟化,而新版本则是基于硬件支持的全虚拟化。不过Xen本身有自己的进程调度器、存储管理模块等,所以代码比较庞大。VMwareESX系列广泛分布的商业系统虚拟化软件是基于软件模拟的全面虚拟化。

上一篇:kvm虚拟机安装

下一篇:kvm创建虚拟机