文章目录

  • 31 KVM管理系统资源-管理虚拟内存NUMA
    • 31.1 NUMA简介
    • 31.2 配置Host-NUMA
      • 操作步骤
    • 31.3 配置Guest-NUMA
      • 操作步骤

31 KVM管理系统资源-管理虚拟内存NUMA

31.1 NUMA简介

传统的多核运算使用SMP(Symmetric Multi-Processor)模式:将多个处理器与一个集中的存储器和I/O总线相连。所有处理器只能访问同一个物理存储器,因此SMP系统也被称为一致存储器访问(UMA)系统。一致性指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。很显然,SMP的缺点是可伸缩性有限,因为在存储器和I/O接口达到饱和的时候,增加处理器并不能获得更高的性能。

NUMA(Non Uniform Memory Access Architecture) 模式是一种分布式存储器访问方式,处理器可以同时访问不同的存储器地址,大幅度提高并行性。 NUMA模式下,处理器被划分成多个“节点”(NODE), 每个节点分配一块本地存储器空间。所有节点中的处理器都可以访问全部的物理存储器,但是访问本节点内的存储器所需要的时间,比访问某些远程节点内的存储器所花的时间要少得多。

31.2 配置Host-NUMA

为提升虚拟机性能,在虚拟机启动前,用户可以通过虚拟机XML配置文件为虚拟机指定主机的NUMA节点,使虚拟机内存分配在指定的NUMA节点上。本特性一般与vCPU绑定一起使用,从而避免vCPU远端访问内存。

操作步骤
  • 查看host的NUMA拓扑结构:

    # numactl -H
    available: 4 nodes (0-3)
    node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    node 0 size: 31571 MB
    node 0 free: 17095 MB
    node 1 cpus: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    node 1 size: 32190 MB
    node 1 free: 28057 MB
    node 2 cpus: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
    node 2 size: 32190 MB
    node 2 free: 10562 MB
    node 3 cpus: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
    node 3 size: 32188 MB
    node 3 free: 272 MB
    node distances:
    node   0   1   2   30:  10  15  20  201:  15  10  20  202:  20  20  10  153:  20  20  15  10
    
  • 在虚拟机XML配置文件中添加numatune字段,创建并启动虚拟机。例如使用主机上的NUMA node 0给虚拟机分配内存,配置参数如下:

      <numatune><memory mode="strict" nodeset="0"/></numatune>
    

    假设虚拟机的vCPU也绑定在NODE0的物理CPU上,就可以避免由于vCPU访问远端内存带来的性能下降。

    说明:

    • 分配给虚拟机的内存不要超过该NUMA节点剩余的可用内存,否则可能导致虚拟机启动失败。
    • 建议虚拟机内存和vCPU都绑定在同一NUMA节点,避免vCPU访问远端内存造成性能下降。例如将上例中vCPU也绑定在NUMA node 0上。

31.3 配置Guest-NUMA

虚拟机中运行的很多业务软件都针对NUMA架构进行了性能优化,尤其是对于大规格虚拟机,这种优化的作用更明显。openEuler提供了Guest NUMA特性,在虚拟机内部呈现出NUMA拓扑结构。用户可以通过识别这个结构,对业务软件的性能进行优化,从而保证业务更好的运行。

配置Guest NUMA时可以指定vNode的内存在HOST上的分配位置,实现内存的分块绑定,同时配合vCPU绑定,使vNode上的vCPU和内存在同一个物理NUMA node上。

操作步骤

在虚拟机的XML配置文件中,配置了Guest NUMA后,就可以在虚拟机内部查看NUMA拓扑结构。项是Guest NUMA的必配项。

  <cputune><vcpupin vcpu='0' cpuset='0-3'/><vcpupin vcpu='1' cpuset='0-3'/><vcpupin vcpu='2' cpuset='16-19'/><vcpupin vcpu='3' cpuset='16-19'/></cputune><numatune><memnode cellid="0" mode="strict" nodeset="0"/><memnode cellid="1" mode="strict" nodeset="1"/></numatune>[...]<cpu><numa><cell id='0' cpus='0-1' memory='2097152'/><cell id='1' cpus='2-3' memory='2097152'/></numa></cpu>

说明:

  • 项提供虚拟机内部呈现NUMA拓扑功能,“cell id”表示vNode编号,“cpus”表示vCPU编号,“memory”表示对应vNode上的内存大小。
  • 如果希望通过Guest NUMA提供更好的性能,则需要配置和,使vCPU和对应的内存分布在同一个物理NUMA NODE上:
  • 中的“cellid”和中的“cell id”是对应的;“mode”可以配置为“strict”(严格从指定node上申请内存,内存不够则失败)、“preferred”(优先从某一node上申请内存,如果不够则从其他node上申请)、“interleave”(从指定的node上交叉申请内存);“nodeset”表示指定物理NUMA NODE。
  • 中需要将同一cell id中的vCPU绑定到与memnode相同的物理NUMA NODE上。

31 KVM管理系统资源-管理虚拟内存NUMA相关推荐

  1. linux查看xml文件的配置,3、kvm虚拟机日常管理与配置

    KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理. 1.  查看KVM虚拟机配置文件及运行状态 (1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/ autostar ...

  2. vrish 删除虚机_使用Kvm命令集管理虚拟机

    kvm基本功能管理 查看命令帮助 vrish -h 虚拟机配置文件存放目录 ls /etc/libvirt/qemu 查看虚拟机状态 virsh list //查看已经开启的虚拟机 virsh lis ...

  3. Linux下KVM虚拟机基本管理及常用命令(转)

    说明:可能有重复 一.KVM的基本管理 1.查看KVM虚拟机配置文件 #Kvm虚拟机默认配置文件位置 [root@kvm qemu]# pwd /etc/libvirt/qemu [root@kvm ...

  4. kvm介绍、kvm存储池、kvm快照和克隆、kvm虚拟机基本管理和网络管理

    目录 什么是kvm 云计算的定义 云计算的服务类型 虚拟化技术定义 虚拟化的两种方式 kvm虚拟化的原理 kvm虚拟化网络解析 kvm存储池 1.图形的方式去创建使用存储池​编辑 ​编辑 2.命令的方 ...

  5. 5分钟让免费的 Linux KVM 虚机管理跟 VMWare 一样好用

    KVM 是 Linux 上常用的虚机管理软件,但是使用 KVM 命令行管理虚机是一件既繁琐又容易出错的任务.本文介绍一种简单方法可以让用户方便地在 Windows 上像管理 VMWare 虚机那样管理 ...

  6. 【Linux 内核】Linux 内核体系架构 ( 进程调度 | 内存管理 | 中断管理 | 设备管理 | 文件系统 )

    文章目录 一.进程调度 二.内存管理 三.中断管理 四.设备管理 五.文件系统 一.进程调度 进程调度 : 进程 是 系统中 进行 资源分配 的 基本单位 ; 每个进程 在 运行时 , 都 感觉自己占 ...

  7. linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...

    一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Linux使用标准的目录结构,在安装的时候,安装 ...

  8. Linux进程管理+内存管理:进程切换的TLB处理(ASID-address space ID、PCID-process context ID)

    目录 一.前言 二.单核场景的工作原理 1.block diagram 2.绝对没有问题,但是性能不佳的方案 3.如何提高TLB的性能? 4.特殊情况的考量 4.进一步提升TLB的性能 - ASID( ...

  9. zutuanxue.com-linux磁盘管理基本管理

    linux磁盘管理基本管理 开课 ​ 本章我们将学习到磁盘管理的相关知识,这部分知识在我们以后的工作中非常重要,它可以让我们知道如何去规划磁盘,如何去使用磁盘,如何去提高磁盘的利用率,这些都会影响服务 ...

最新文章

  1. Qt Creator比较文件
  2. 通信距离与哪些因素相关?为什么模块通信距离和厂家宣传的不一样?
  3. AJAX之表单即时验证
  4. 软件定义存储相比传统存储系统的优势
  5. c语言中不带任何修饰符的浮点变量,江苏省计算机等级考试二级C语言笔试辅导题目...
  6. centos mysql无法登录,解决centos下MySQL登录1045问题
  7. 几个北邮和交大学霸的公众号,值得学习
  8. Windows终端配置emoji
  9. 一种基于Android、iOS系统的移动端身份证识别技术,手机拍照扫描识别
  10. Error: PostCSS received undefined instead of CSS string核心解决方法
  11. http请求 405错误
  12. halcon中的分水岭算法讲解以及作用和实例
  13. 【AI绘画打卡】| 用漫画生成器绘制宅男最爱的二次元美女
  14. 鸟哥私房菜学习(四)安装CentOS 7
  15. 字间距、词间距的使用-CSS入门基础(010)
  16. 用于电车气候测量的无线数据记录仪
  17. 基于TMS320C6678的多核DSP上电加载技术
  18. 47 Three.js使用THREE.ParametricGeometry生成平面图形、波浪图形、和克莱因瓶
  19. 1-3NF,BCNF,最小依赖集,模式分解,判断是否为无损分解
  20. 多渔:赚钱,还是要脚踏实地!

热门文章

  1. Apache Flink在滴滴的应用与实践
  2. elementui table 固定列_element-ui 中的table的列隐藏问题解决
  3. [JZOJ3370]【NOI2012】美食节
  4. 自定义数据类型——结构体
  5. linux设置开机自动启动网卡驱动,redhat 上网 网卡配置 驱动安装
  6. C++搭建集群聊天室(十二):用户单聊及离线消息处理功能实现
  7. 微信小程序+阿里物联/Onenet物联+esp32搭建无服务器物联系统(一)---ESP32硬件设计开源
  8. datepart函数用法及其与sqlserver depart函数、Mysql week函数的差异
  9. 特权同学《Verilog边码边学》P8课后习题一和二答案 (初学,自己写的,有错误请见谅)
  10. 魔性洗脑神曲掀起模仿热潮,品牌为何热衷“打歌”?