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









  • 相关阅读:
    成为一个优秀的C++程序员
    C++强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
    C++经典类库(C++开发必看)
    auto_ptr, unique_ptr, shared_ptr and weak_ptr智能指针讲解
    C++ clone()函数的用法
    c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast
    C++模板详解(转)
    static变量的作用(转)
    2018年12月17日,新工作,可是一点提不起兴趣,在原点转啊转,园子什么时候会关了呢,我们终将老去
    给C#Control组件统一增加加属性
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7114921.html
Copyright © 2020-2023  润新知