zoukankan      html  css  js  c++  java
  • vsphere 5.1 性能最佳实践。

    1.关于CPU负载。extop显示的结果

    如果CPU load average>=1,说明主机过载了。

    如果PCPU used%在80%左右说明良好,90%以上就临近过载了。

    VM赋予过多的vCPU可能消耗更多资源,尤其是在负载很重的主机上。

    例如,单线程负载运行在多个vCPU的VM上或者多线程负载运行在一个超过其需要的vCPU数量的VM上。

    Most guest operating systems execute an idle loop during periods of inactivity. Within this loop,
    most of these guest operating systems halt by executing the HLT or MWAIT instructions. Some older
    guest operating systems (including Windows 2000 (with certain HALs), Solaris 8 and 9, and
    MS-DOS), however, use busy-waiting within their idle loops. This results in the consumption of
    resources that might otherwise be available for other uses (other virtual machines, the VMkernel, and
    so on).
    ESXi automatically detects these loops and de-schedules the idle vCPU. Though this reduces the CPU
    overhead, it can also reduce the performance of some I/O-heavy workloads. For additional
    information see VMware KB articles 1077 and 2231.

    The guest operating system’s scheduler might migrate a single-threaded workload amongst multiple
    vCPUs, thereby losing cache locality


    2.建议启用多线程

    cpu0和cpu1标识第一个core,cpu2和cpu3标示第二个core,依次类推。

    多线程和cpu关联性:将vCPU分配到同一物理CPU上的2个逻辑处理器会引起性能问题。

    3.NUMA

    ESXi会只能管理。NUMA调度器和内存安排策略。可以手工覆盖系统自动设置,但是一般最好不动,改用Memoriy affinity来设置内存管理或者cpu资源管理来设置cpu资源。

    By default, ESXi NUMA scheduling and related optimizations are enabled only on systems with a total of at
    least four CPU cores and with at least two CPU cores per NUMA node

    缺省情况下ESXi NUMA调度器和优化会在系统具备至少4个core,每个NUMA node至少2个core的情况下启用。

    两种情况:A.VM上的vCPU少于或者等于NUMA Node的core。

      全部分配到一个node上,用本地内存

    B.VM上的vCPU多于NUMA Node的core

    称作wide  VM.  vCPU会分配到2个或以上的Node上。会有访问远程内存的延迟。可使用vNUMA缓和-让vm guest参与到本地内存管理任务

    因此B比A具有性能优势,但是相反的,对于内存带宽瓶颈的负载来说B可以充分利用内存带宽。对于A上无法分配到多个Node的情形。

    可以修改numa.vcpu.maxPerMachineNode来达到增加带宽的好处。

    虚拟化的主要优势之一是能够动态地添加CPU和RAM来运行虚拟机。这是处理某些计算问题的很好的办法,并且还不需要停机时间和重新启动。

    然而,在某些情况下,通过鼠标点击(动态地或者其他方式)分配CPU和RAM会对你的服务器产生有害影响,所以你需要非常了解你的工作负载以及操作系统。

    这涉及你正在运行的工作负载类型、操作系统调度以及虚拟机的虚拟CPU布局。虚拟CPU分配本来是很简单的,你只需要指定你想要分配的虚拟CPU数量即可。然而,随着物理CPU内核数量的增加,NUMA成为常态,这使选择变得很棘手,因为现在,几乎每个主要管理程序都代表着一种虚拟CPU类型选择。

    例如,如果你想分配四个虚拟CPU到你的虚拟机,你可以在4个单核CPU、2个双核CPU和1个四核CPU间选择。虽然所有这些选择都能够增加四个虚拟CPU,但它们是以不同的方式实现的,而这种差异性可能会影响运行虚拟服务器的操作系统调度做出的决定。

    虚拟机炼金术

    对于这些选择,并没有必须遵守的规则。正确的选择完全取决于工作负载配置文件、使用的调度程序、操作系统版本或内河版本。较老版本的内河不太善于处理多核CPU,最好选择单核CPU。而较新的内核和操作系统版本更青睐于多核CPU。

    除此之外,工作负载本身的性质也有很大的影响。单线程和多线程工作负载将以不同的方式处理这些实例。在一些工作负载中可能只有细微的差别,但可能与其他工作负载存在巨大差异。

    NUMA的优势在于更快的内存存取,并能显著地加快处理器和RAM密集型流程。如果CPU核心只与CPU控制的内存交互,它将会更快地执行,因为它不需要跨越到另一个CPU来分配和使用内存。

    这很好理解,有点类似于:你去对面街道的商店买东西要比去另一个镇上的商店买东西要快。然而,当你在操作系统下插入一个管理程序时,CPU内核和RAM分配之间的关系会有点“暧昧”。

    根据管理程序向虚拟服务器呈现CPU的方式,操作系统可能会认为每个CPU都具有自己的内存控制器或者四个内核间存在一个共享内存控制器。此外,管理程序不断轮询虚拟机服务器内存分配状态以及评估是否让活跃内存更接近目前为虚拟机处理负载的CPU。这些因素都可能影响性能。

    点石成金

    幸运的是,有一个办法可以帮助你选出最适合你的工作负载的方法—测试。建立几个虚拟服务器,每个具有不同的虚拟CPU布局,并运行样本工作负载。调查你可以在管理程序水平对NUMA分配做出的调整,并通过调整这些参数来测试不同的情况。

    例如,VMware的vSphere具有深度调整参数,例如numa.vcpu.maxPerMachineNode和numa.vcpu.maxPerClient,这些允许你调整可以驻留在单个NUMA节点的最大虚拟CPU数量,以及被管理程序重新平衡作为单个单元的最大虚拟CPU数量。还有几个其他参数可能会影响你的选择,但事实是,你可能需要通过一些微小的调整和测试来提高你的工作负载性能。

    这并不是一个新概念,但在很大程度上被大家忽视了。所以当你在建立和调整你的虚拟机时,请记住,当你在谈论虚拟CPU时,四个并不总是等于四个。花一点时间来测试可以帮助你节省很多处理时间。(邹铮编译)

    vNUMA在至少8个core的情况下启用,且至少硬件版本为8.

  • 相关阅读:
    24-移动端app数据爬取
    24-移动端app数据爬取
    18闭包
    mysql日期 获取本月第一天 获取下个月的第一天
    介绍shell的来龙去脉给你看
    RHEL 和centos 的区别
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
    CDH管理界面查看各框架的版本(hive为例)
    Cloudera hadoop配置文件地址和修改配置属性方法
    idea快速创建级联目录
  • 原文地址:https://www.cnblogs.com/jjkv3/p/3156308.html
Copyright © 2011-2022 走看看