首页 > 其他分享 >libvirt/qemu设置numa distance

libvirt/qemu设置numa distance

时间:2024-11-07 11:11:53浏览次数:1  
标签:distance 15 src dst numa dist qemu

qemu可以模拟numa,设置numa内的memory,cpu,numa间distance。

qemu-system-x86_64 --help | grep numa

-numa node[,mem=size][,cpus=firstcpu[-lastcpu]][,nodeid=node][,initiator=node]
-numa node[,memdev=id][,cpus=firstcpu[-lastcpu]][,nodeid=node][,initiator=node]
-numa dist,src=source,dst=destination,val=distance
-numa cpu,node-id=node[,socket-id=x][,core-id=y][,thread-id=z]

-numa dist用来设置numa间的距离,src代表当前的numa节点,dst代表远端节点,当然也设置为本节点。举个例子,假设有3个numa节点,设置其相互之间的距离,那么就要设置9次。

-numa dist,src=0,dst=0,val=10 \
-numa dist,src=0,dst=1,val=15 \
-numa dist,src=0,dst=2,val=15 \
-numa dist,src=1,dst=0,val=15 \
-numa dist,src=1,dst=1,val=10 \
-numa dist,src=1,dst=2,val=15 \
-numa dist,src=2,dst=0,val=15 \
-numa dist,src=2,dst=1,val=15 \
-numa dist,src=2,dst=2,val=10

进入虚拟机查看numa distance,

# cat /sys/devices/system/node/node*/distance
10 15 15
15 10 15
15 15 10

libvirt也提供了对应的接口,可以在xml上设置numa distance。

    <numa>
      <cell id='0' cpus='0-31' memory='50331648' unit='KiB'>
        <distances>
          <sibling id='0' value='10'/>
          <sibling id='1' value='15'/>
          <sibling id='2' value='15'/>
        </distances>
      </cell>
      <cell id='1' cpus='32-63' memory='50331648' unit='KiB'>
        <distances>
          <sibling id='0' value='15'/>
          <sibling id='1' value='10'/>
          <sibling id='2' value='15'/>
        </distances>
      </cell>
      <cell id='2' cpus='64-95' memory='50331648' unit='KiB'>
        <distances>
          <sibling id='0' value='15'/>
          <sibling id='1' value='15'/>
          <sibling id='2' value='10'/>
        </distances>
      </cell>
    </numa>

 记录一个错误。

第一次在libvirt中设置numa distance时将distances写成distance,创建vm总是numa distance总是不生效,手动edit会报错:

error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng
Extra element cpu in interleave
Element domain failed to validate content

Failed. Try again? [y,n,i,f,?]:

验证domain schemas失败,但是“Extra element cpu in interleave”这句具有误导性,其实跟cpu交错没关系。libvirt所有的schema存放在/usr/share/libvirt/schemas下,所有合法的设置都在里面,在查找distance元素时发现里面的distances element跟我写的不一致,修改之后通过了检查,进入虚拟机发现设置已经生效。但是奇怪的是,virsh edit显示并没有跟numa distances相关的设置。当前的xml验证还需要改进,如果能指出错误的具体原因,在本例中仅仅就是因为distances拼写错误,这个错误还是很容易定位的,如果能在验证时报出指定位置的错误就会节省很多debug的时间。

标签:distance,15,src,dst,numa,dist,qemu
From: https://www.cnblogs.com/banshanjushi/p/18531770

相关文章

  • qemu是用python写的吗
    一、QEMU简介QEMU是法布里斯·贝拉在Linux内核上写的一个CPU模拟器,这套开放源码的模拟器软件与Bochs、PearPC近似,但具有后两者所不具备的高速度及跨平台等特性。QEMU可以在不同的机器上运行独自开发的操作系统与软件,经由KQEMU这个开源的加速器,能模拟至接近真实电脑的速度。Q......
  • 『QEmu』使用 QIOChannel 进行 unix socket 通信
    在QEmu中使用常规的read(...)、recv(...)或者write(...)、send(...)进行堵塞式IO读写有时候会无法得到预期的结果,这是因为QEmu使用基于glib事件循环的事件循环,所有的读写操作都应该统一在QEmu的框架中进行。QEmu的内部API较为复杂,存在多种不同封装级别的IO读写......
  • 【Kernel】基于 QEMU 的 Linux 内核编译和安装
    目录安装虚拟机系统共享目录编译内核卸载内核参考资料本文主要记录个人做存储系统研究时,在QEMU环境下编译和安装Linux内核的过程安装虚拟机系统之前在利用RocksDB+ZenFS测试ZNS的环境搭建和使用给出过借助VNC进行图形化安装的步骤,这里再给出仅通过终端进行安装的......
  • SS241017C. 距离(distance)
    SS241017C.距离(distance)题意给你一棵无根树,边有边权。每次操作向集合\(S\)里插入一个点对\((a,b)\)或询问一个点对\((x,y)\)。对于询问求\(\min_{(a,b)\inS}\{dis(a,x)+dis(b,y)\}\)。solution先考虑单点插入查询的情况。相当于存在插入关键点操作,每次询问一个点距......
  • 在qemu添加基于ast2600的设备
    公司的设备基于aspeed的ast2600.和ast2600-evt还是有不小差距,需要为了多模拟一些数据,需要添加新machine,修改部分设备.修改文件hw/arm/aspeed.c1.添加新的machinepf12, 基于ast2600-evb,提供一个classinit函数staticconstTypeInfoaspeed_machine_types[]......
  • 什么是 NUMA
    什么是NUMA?早期的计算机,内存控制器还没有整合进CPU,所有的内存访问都需要经过北桥芯片来完成。如下图所示,CPU通过前端总线(FSB,FrontSideBus)连接到北桥芯片,然后北桥芯片连接到内存——内存控制器集成在北桥芯片里面。这种架构被称为UMA1(UniformMemoryAccess,一致性内......
  • Matrix Distances(ICPC2023 合肥站)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdi......
  • afl-fuzz的qemu模式中如何去判断是否crash
    1.afl-fuzz部分afl-fuzz部分和非qemu模式是相同的,主要是通过管道接收来自forkserver传入的status信息,通过status信息来判断是否存在crashif(unlikely(/*Anormalcrash/abort*/(WIFSIGNALED(fsrv->child_status))||/*specialhandling......
  • Cannon-es.js之Distance Constrait模拟布料
    本文目录前言最终效果1、Particle2、前置代码准备2.1代码2.2效果3、使用距离约束模拟布料3.1代码3.2效果前言在现代Web开发中,实现逼真的物理效果对于提升用户体验至关重要。Cannon-es.js,作为Cannon.js的ES6模块版本,凭借其轻量级、高性能和易于集成的特点,在Web......
  • CS 168 Distance-Vector Routing
    CS168Fall2024Project 2:Distance-Vector RoutingInthis project,youwillwriteadistance-vectorroutingprotocol.We have provided simulatorcodethatyoucanusetovisualizeyour protocol in action.Lecturesneededforthisproject:Lecture6(Rou......