首页 > 代码库 > 美团网 KVM虚拟化公开课学习笔记
美团网 KVM虚拟化公开课学习笔记
KVM优化技术,美团开放平台--邱剑
基于KVM现有选项做一些优化,视频地址:http://www.osforce.cn/course/77/learn#lesson/80
CPU调优:
1、Context switch(用户态到内核态的优化);ring0->nernel mode,ring 3->user mode;
设置:宿主机BIOS中开启intel VT-X
2、缓存优化 Cache-Node Binding
将qemu进程绑定到特定的CPU node或者core上---避免L2/L3Cache miss
Node binding VS core binding
设置:task set
?
Memory调优
地址Address转换和物理空间Space优化
1、Addressing-EPT(SLAT)硬件加速
2、Addressing-HugePage 减少Page table尺寸,降低查找缓存(TLB)的Cache-miss,加速VM内存地址转换;默认PageSize为4KB/ HugePage size为2M;
Transparent hugepage:kernel进程khugepaged周期性扫描内存,自动将地址连续可合并的普通4KB page合并为2MB Hugepage.社会自方法:sysctl -w sys.kernel.mm.transparent_huge....
3、对空间的优化 Space-KSM:kernel same-page merging
kernel进程ksmd周期性扫描内存,将内容相同的Page合并,减少物理内存使用量
I/O调优:
1、Storage 2、Network间数据交换借口,简化流程
full virtualization技术无需修改Guest OS,则不存在虚拟化层和Guest OS层的特别配合导致影响效率;
virtio:半虚拟化I/O设备框架,标准化Guest和host间数据交换借口,简化流程,减少内存拷贝,提升虚拟机I/O效率
1、Storage
virtio-blk:基于virtio框架的虚拟PCI磁盘设备;
/dev/vdx
virtio-scsi:基于virtio框架的虚拟SCSI磁盘设备?:/dev/sdx
缓存模式调整
Native AIO:kernel AIO 2%~3%的优化性能,命令行参数中修改;
块设备IO调度器优化(通过sysctl -w sys.block.sdb.queue.scheduler...):
Network优化:
1、virtio-net:基于virtio框架的虚拟以太网设备
vhost_net优化:内核进程vhost_XXXX
其他优化选项:
1、CPU:scheduler
2、Memory:NUMA
3、Storage:PCI-passthrough
4、Network:SR-IOV,PCI-Kernel
5、提升硬件指标--终级方案
相关问题
1、VT-X作用:context的上下文切换加速,用户态到内核态的快速切换,以提升其性能;
2、IO隔离和网络隔离QoS:IO隔离通过virtio-blk进行设定,有两种方式
网络隔离对带宽资源进行隔离;
3、Cgroup可以设置每个KVM QEMU进程或线程吗?--可以找到对应的QEMU pid,对该PID进行限制,或者用libvirt会更简单
4、美团95%以上的业务都在Openstack上;
5、基于Openswitch做带宽调整;
6、openstack中KVM的恢复机制?---snapshot方式,但占用空间较大;
7、使用千兆网络带宽,没有使用分布式文件系统
8、监控:通过在Host中通过脚本进行监控