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中通过脚本进行监控