前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >kvm-非统一内存访问架构(numa)

kvm-非统一内存访问架构(numa)

作者头像
运维小路
发布2024-11-13 18:33:24
发布2024-11-13 18:33:24
24600
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。

我们上一小节讲了绑定核心,来提高cpu的性能。但是cpu性能其实不仅仅只涉及到cpu,实际上内存也是很重要的因素。目前最新的技术是numa,下面这个图是为了方便理解改造过的。

竖线中间代表代表2个楼层(2个物理cpu)。

服务员则代表物理cpu的核心。

房间则代表不同的内存。

为了简单理解我这里以酒店的服务员和房间服务关系来理解这个图。我这个酒店有2个层楼(2个物理cpu),每层楼有6个服务员(6个核心);每层楼有n个房间(n个内存条)。

如果一楼的服务员只给一楼房间服务,它的效率会比较高。但是如果它要去二楼的房间服务,则会乘坐电梯(上下文切换),则效率会降低。反之二楼的服务员如果要给一楼的房间服务也是同样的道理。

所以如果要加快效率,则尽量避免这样的交叉服务,尽量让服务员只服务自己楼层的房间,这个就是所谓的numa技术。

NUMA(Non-Uniform Memory Access,非统一内存访问)是一种计算机内存设计,用于多处理器系统中。在NUMA架构下,每个处理器或一组处理器都有本地内存直接连接到它们,同时也可以访问系统中其他处理器的内存。然而,访问远程内存的速度比访问本地内存要慢,因此称为“非统一”。

这种设计的主要目的是解决随着处理器数量增加而带来的扩展性问题。传统的对称多处理系统(SMP)中,所有处理器共享同一块物理内存,当处理器数量增加时,内存带宽成为瓶颈,影响系统的性能。

NUMA的特点包括:

本地内存访问更快:每个处理器可以快速访问自己的本地内存。

可扩展性更强:通过将处理器及其相关内存组织成节点,可以更容易地扩展系统以支持更多的处理器。

负载均衡:操作系统可以根据各个处理器与内存的距离来优化任务调度和数据放置,从而提高效率。

此图来源于互联网

查看numa信息

代码语言:javascript
代码运行次数:0
复制
#这个是单个cpu
[root@localhost ~]# lscpu  |grep NUMA
NUMA node(s):                       1
NUMA node0 CPU(s):                  0-15

#也可以使用这个命令查看
numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
node 0 size: 28593 MB
node 0 free: 23818 MB

如果要使kvm虚拟机利用到这个numa特性,则可以参考下面的配置。

代码语言:javascript
代码运行次数:0
复制
<memory unit='GiB'>16</memory>
  <vcpu placement='static'>4</vcpu>
  <numatune>
    <memory mode='strict' nodeset='0'/>
  </numatune>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
  </cputune>
  <cpu mode='host-passthrough'>
    <numa>
      <cell id='0' cpus='0-3' memory='16384' unit='MiB'/>
    </numa>
  </cpu>
  1. 虚拟机配置了4个cpu,16G内存
  2. 虚拟cpu和物理cpu一一对应,如果是多cpu,需要确保这个numa编号在一个cpu里面。
  3. 并且把cpu和内存进行绑定到一个numa里面,避免跨numa调度,从而提高了性能。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档