zoukankan      html  css  js  c++  java
  • [zz]淘宝子团关于kvm 调优的分享

    今天在杭州参加淘宝嘉年华技术沙龙,主题是虚拟化和云计算,三个讲演:

    • 淘宝网子团分享淘宝kvm技术的使用
    • 华为的杨晓伟介绍虚拟化技术
    • 阿里云郑永升介绍弹性云计算技术

    其中KVM 调优,三点值得关注的:

    1、Kernel SamePage Merging(KSM)

    在CentOS下KSM是打开的,Debian下KSM是关闭的。KSM的原理,是多个进程中,Linux将内核相似的内存页合并成一个内存页。这 个特性,被KVM用来减少多个相似的虚拟机的内存占用,提高内存的使用效率。由于内存是共享的,所以多个虚拟机使用的内存减少了。这个特性,对于虚拟机使 用相同镜像和操作系统时,效果更加明显。

    但是,事情总是有代价的,使用这个特性,都要增加内核开销,用时间换空间。所以为了提高效率,可以将这个特性关闭。方法是:

    两种关闭方式:

    echo 0 > /sys/kernel/mm/ksm/run

    或者

    chkconfig ksm off
    chkconfig ksmtuned off

    另外,如果要使用KSM特性,也可以对参数进行调优。

    具体参见:

    http://www.linuxtopia.org/online_books/rhel6/rhel_6_virtualization/rhel_6_virtualization_chap-KSM.html

    2、KVM Huge Page Backed Memory

    intel 的X86 CPU通常使用4Kb内存页,当是经过配置,也能够使用巨页(huge page):

    (4MB on x86_32, 2MB on x86_64 and x86_32 PAE)

    使用巨页,KVM的虚拟机的页表将使用更少的内存,并且将提高CPU的效率。最高情况下,可以提高20%的效率!

    使用方法,需要三部:

    mount -t hugetlbfs hugetlbfs /dev/hugepages
    #保留一些内存给巨页
    sysctl vm.nr_hugepages=516
    #给 kvm 传递参数 hugepages
    qemu-kvm - qemu-kvm -mem-path /dev/hugepages

    其中第三步,也可以在配置文件里加入:

    <memoryBacking>
    <hugepages/>
    </memoryBacking>
    

    验证方式,当虚拟机正常启动以后,在虚拟机里查看:

    cat /proc/meminfo |grep -i HugePages_Free

    3、sheepdog 存储的使用

    taobao有已经在sheepdog上做了很多工作,代码贡献量已经排在最前面。

    有几个重要的feature改进和很多bug fix。

    taobao已经在95个物理机和950个虚拟机的环境下,做了测试。

    具体可以参见:

    http://sheepdog.taobao.org/

    这是一个令人兴奋的改进。

  • 相关阅读:
    C结构体
    读书笔记之:C语言深度剖析
    stdin、stdout、stderr
    There is an error while getting planid. No Free partitions available
    LeetCode刷题笔录Add Binary
    UVA
    谷歌google搜索打不开、谷歌gmail邮箱及相关服务无法登录的解决的方法
    C/C++中各种类型int、long、double、char表示范围(最大最小值)
    使用java进行文件编码转换
    懂,你的App生,不懂,死!
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2514360.html
Copyright © 2011-2022 走看看