OpenStack中的CPU与内存超分详解

2023-05-16

目录

什么是超分

CPU超分

查看虚拟机虚拟CPU运行在哪些物理CPU上

内存超分

内存预留

内存共享

如何设置内存预留和内存共享

全局设置

临时设置

什么是超分

超分通常指的是CPU或者GPU的分区或者分割,以在一个物理CPU或GPU内模拟多个逻辑CPU或GPU的功能。这种技术通常被称为虚拟化,允许多个操作系统或者应用程序在同一物理硬件上同时运行,从而提高了资源利用率和系统性能。

在CPU超分方面,一种常见的技术是使用硬件虚拟化,例如Intel的虚拟化技术(VT-x)或AMD的虚拟化技术(AMD-V)。这些技术可以允许多个虚拟机在同一物理CPU上运行,并为每个虚拟机提供虚拟化的CPU、内存和I/O设备。

在GPU超分方面,也有类似的技术,例如Nvidia的虚拟GPU(vGPU)和AMD的虚拟化GPU(vGPU),允许多个虚拟机共享一块物理GPU,并为每个虚拟机提供虚拟化的GPU资源。

CPU超分

在OpenStack中,CPU超分比例(CPU overcommit ratio)是指将虚拟机虚拟CPU核心的数量设置为物理主机实际CPU核心数量的倍数。这允许多个虚拟机共享物理CPU资源。您可以在OpenStack中的nova.conf配置文件中设置CPU超分比例。默认情况下,该值设置为1.0,这意味着每个虚拟CPU内核将映射到物理主机的一个CPU内核。您可以通过修改以下行来更改CPU超分比例的值:

cpu_allocation_ratio = <ratio>

其中<ratio>是您要设置的CPU超分比例值。例如,如果您希望将CPU超分比例设置为2.0,则应将此值设置为2.0。请注意,将此值设置得太高可能会导致虚拟机之间的CPU竞争,从而导致性能下降。因此,建议在设置CPU超分比例时谨慎行事。 

查看虚拟机虚拟CPU运行在哪些物理CPU上

virsh vcpuinfo <VM ID>

[root@bj05-compute-s6-10e33e18e78 ~]# virsh vcpuinfo 2ce42431-aba8-47d9-bc78-1be47f2b93a4
VCPU:           0
CPU:            80
State:          running
CPU time:       11029.1s
CPU Affinity:   ------------------------yyyyyyyyyyyyyyyyyy------------------------------yyyyyyyyyyyyyyyyyy------

VCPU:           1
CPU:            84
State:          running
CPU time:       11776.3s
CPU Affinity:   ------------------------yyyyyyyyyyyyyyyyyy------------------------------yyyyyyyyyyyyyyyyyy------

VCPU:           2
CPU:            37
State:          running
CPU time:       12852.5s
CPU Affinity:   ------------------------yyyyyyyyyyyyyyyyyy------------------------------yyyyyyyyyyyyyyyyyy------

VCPU:           3
CPU:            84
State:          running
CPU time:       13374.2s
CPU Affinity:   ------------------------yyyyyyyyyyyyyyyyyy------------------------------yyyyyyyyyyyyyyyyyy------

内存超分

在OpenStack中也存在内存超分的概念,它允许您在虚拟机中分配超过物理主机可用内存的虚拟内存。内存超分的实现方式类似于CPU超分,它基于内存预留和内存共享两种技术。

内存预留

在内存预留模式下,每个虚拟机被分配一定数量的内存,该内存在虚拟机创建时就被分配并保留,即使虚拟机并未使用该内存。

内存共享

在内存共享模式下,多个虚拟机共享相同的物理内存,这可以使您在不损害性能的情况下更好地利用物理主机的内存资源。

如何设置内存预留和内存共享

全局设置

在OpenStack中,您可以通过编辑nova.conf配置文件来进行全局设置,以配置内存预留和内存共享选项。以下是相关配置项的说明:

  • 内存预留:

要设置全局内存预留选项,请在nova.conf配置文件中添加以下行:

ram_allocation_ratio = <ratio>

其中<ratio>是您要设置的内存超分比例值。默认值为1.5,这意味着虚拟机可以分配的内存量可以超过物理主机可用内存的一半。

  • 内存共享:

要设置全局内存共享选项,请在nova.conf配置文件中添加以下行:

ram_allocation_policy = <policy>

其中<policy>可以是"dedicated"(表示禁用内存共享)或"shared"(表示启用内存共享)。默认值为"dedicated",这意味着内存共享是禁用的。

请注意,全局设置将适用于所有虚拟机,但在创建或编辑虚拟机时,您可以覆盖这些设置并设置特定的内存预留和内存共享选项。

临时设置

  • 内存预留:

在创建或编辑虚拟机时选择“预留”内存的选项,并指定要为虚拟机预留的内存数量。您还可以使用OpenStack的API或命令行工具设置虚拟机的内存预留。例如,在nova命令行工具中,您可以使用以下命令将虚拟机的内存预留设置为2 GB:

nova flavor-key <flavor-name> set "hw:mem_reservation"=2048

其中<flavor-name>是您要设置的虚拟机规格的名称。

  • 内存共享:

在创建或编辑虚拟机时选择“共享”内存的选项。您还可以使用OpenStack的API或命令行工具设置虚拟机的内存共享。例如,在nova命令行工具中,您可以使用以下命令将虚拟机的内存共享设置为True:

nova flavor-key <flavor-name> set "hw:mem_shared"=True

注意,内存共享模式可能会影响虚拟机的性能,因此建议在设置内存共享时谨慎行事。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenStack中的CPU与内存超分详解 的相关文章

  • 用于查找 UNIX 计算机上 CPU 信息的命令

    您知道是否有一个 UNIX 命令可以告诉我 Sun OS UNIX 机器的 CPU 配置是什么 我也在尝试确定内存配置 有没有 UNIX 命令可以告诉我这一点 AFAIK 没有标准的 Unix 命令 我没有使用过Sun OS 但是在Linu
  • Python CPU 计数在一台 Windows 服务器上工作但在另一台服务器上不起作用?

    我编写的代码可以在 Windows XP 和 Windows Server 2008 64 位上运行 但是 我刚刚启动了 Amazon Windows 64 位实例 代码失败 非常简单 看起来像这样 import multiprocessi
  • OpenShift :: POD 不会从部署配置继承“名称标签”

    我从 git repo 基于 Docker 的应用程序 创建了一个构建配置 oc new build
  • 执行长字传输到 CPU 需要多少个周期和大小

    该任务针对架构 ColdFire 处理器 MCF5271 我不明白执行到 CPU 的长字传输或字传输需要多少个周期以及什么大小的周期 我正在阅读图表 但不明白其中有何联系 非常感谢任何评论 我附上了两个例子和答案 数据总线大小 https
  • OpenACC 是否会影响正常的 GPU 渲染?

    我试图弄清楚是否可以使用 OpenACC 代替正常的 CPU 串行执行调用 通常我的编程都是关于 3D 编程 或者以某种方式正常使用 GPU IE 图像处理或其他需要使用着色器的渲染类型 我想弄清楚这个图书馆是否对我有利 我问这个问题的原因
  • Tensorflow 相同的代码,但从 CPU 设备到 GPU 设备得到不同的结果

    我正在尝试实现一个程序来测试 GPU 设备上的 Tensorflow 性能 数据测试是MNIST数据 使用多层感知器 神经网络 进行监督训练 我跟着这个简单的例子 http gist github com nishidy 8176548ec
  • 多处理和并行处理之间的比较

    有人能告诉我多处理和并行处理之间的确切区别吗 我有点困惑 感谢您的帮助 多重处理 多重处理是使用两个或多个中央处理单元 单个计算机系统中的 CPU 该术语还指 系统支持多个处理器和 或的能力 在他们之间分配任务的能力 并行处理 在计算机中
  • 哪个更快:x<<1 或 x<<10?

    我不想优化任何东西 我发誓 我只是出于好奇而想问这个问题 我知道在大多数硬件上都有位移位的汇编命令 例如shl shr 这是一个单一命令 但移位多少位 从纳秒角度或从 CPU 角度角度 是否重要 换句话说 以下任一选项在任何 CPU 上都更
  • CPU如何对指令重新排序

    我最近读到了有关 CPU 指令重新排序以提高效率的内容 但我无法理解CPU如何重新排序其指令 我的意思是编译时重新排序是可以想象的 因为编译器可以预见即将到来的代码 但是对于一个接一个地读取指令的CPU 它如何看到即将到来的指令并对它们重新
  • 如何获取 Java7 应用程序的 CPU、RAM 和网络使用情况

    我找到了这篇旧文章如何在 Java 中监控计算机的 cpu 内存和磁盘使用情况 https stackoverflow com questions 47177 how to monitor the computers cpu memory
  • Xcode 9 - CPU 使用率高 - 风扇最大速度

    自从我升级到 Xcode 9 后 当我在 Xcode 上工作时 我的粉丝就变得疯狂了 当我使用 Storyboards 和 Interface Builder 时 尤其会发生这种情况 Xcode有时会占用100 的CPU 并且名为 Inte
  • 阿迪和苏比之间到底是什么“关系”?

    我应该回答这个问题 经过一番研究后发现 add 和 sub 具有相同的操作码 仅在功能领域有所不同 这是答案还是其他什么 Update Nios II CPU 手册中提供了它 subi subtract immediate Operatio
  • 安装 openstack 时发生错误:./stack.sh:137:die

    我尝试使用以下命令通过 devstack 安装 openstack git 克隆https github com openstack dev devstack git https github com openstack dev devst
  • 如何使用 cloud-init 安装 docker?

    我想在 Openstack 中创建实例 在通过 ssh 连接之前 这些实例中已经安装了 Docker 所以我很自然地对 Cloud init 技术感兴趣 因为它允许我们在第一次启动时在虚拟机上安装软件包 所以现在我尝试在启动时在我的实例上安
  • NodeJS CPU 一次飙升至 100%

    我有一个用 NodeJS 编写的 SOCKS5 代理服务器 我正在使用原生net and dgram打开 TCP 和 UDP 套接字的库 它可以正常工作大约 2 天 所有 CPU 的最大利用率约为 30 两天没有重新启动后 一个 CPU 峰
  • 如何检查设备是否“快”足够

    我找不到更好的措辞来回答我的问题 在我的应用程序中的某个时刻 我设置了一些非常密集的动画 事实是 在高端设备上 动画运行流畅且赏心悦目 另一方面 我测试的一款低端设备在制作动画时的性能非常糟糕 为了将用户体验放在第一位 我想在计算能力足够的
  • PHP 脚本不断执行 mmap/munmap

    我的 PHP 脚本包含一个循环 它只不过是回显和取消引用指针 如 tab othertab i gt 中的内容 直到昨天 这个脚本开始变得非常慢 比以前慢了 50 倍 之前 它一直运行良好 使用 strace 后 我发现 90 的情况下 脚
  • 使用Python获取CPU温度?

    如何使用 Python 检索 CPU 的温度 假设我在Linux上 有一个较新的 sysfs 热区 API http shallowsky com blog linux kernel sysfs thermal zone html 也可以看
  • Linux 内核中是否使用了扩展指令集(SSE、MMX)?

    好吧 它们带来 至少应该带来 性能的巨大提升 不是吗 所以 我还没有看到任何 Linux 内核源代码 但很想问 它们是否以某种方式被使用 在这种情况下 对于没有此类指令的系统 必须有一些特殊的 代码上限 SSE 和 MMX 指令集在音频 视
  • prometheus中每个节点的CPU使用率

    理想情况下 我必须找出每个节点上 Pod 的 CPU 使用率百分比 但我试图找出每个节点的CPU使用率 我已经编写了查询 但它给了我超过 100 可以是 150 200 即使包含多个 cpu 的情况 我取了平均值 您能帮我理解下面的查询有什

随机推荐

  • mac用完移动硬盘后 windows识别不出 解决方案

    cmd 运行 chkdsk F f
  • Cannot find reference ‘imread‘ in ‘__init__.py‘

    Cannot find reference imread in init py 前言 本人java开发 只是用python解决部分问题 可能解决方案不专业或者有问题 请自己判断 毕竟我只是简单处理下图片 解决方案 方案一 pip insta
  • RobotMaster资料汇总

    1 软件 xff1a 软件可以去网上下载 xff0c 或者去淘宝购买 xff0c 还包安装 不过基本上都是在虚拟机上操作 xff0c 只有在XP系统下可以直接安装 若是正版软件 xff0c 则会包含正确的安装教程 其中包括 xff1a MA
  • 代码改变生活-使用You-Get下载bilibili的视频【三】

    本文为博主原创 xff0c 未经许可严禁转载 本文链接 xff1a https blog csdn net zyooooxie article details 112167893 我自己都想不到 xff0c 这个分享做到了第三篇 xff0c
  • Python脚本之ZIP文件压缩、解压

    本文为博主原创 xff0c 未经许可严禁转载 本文链接 xff1a https blog csdn net zyooooxie article details 114632112 最近在翻看Python的官方文档 xff0c https d
  • 对文本和数据进行处理之awk编程

    转载地址 xff1a 点击打开链接 awk 是一种编程语言 xff0c 用于在Linux unix下对文本和数据进行处理 数据可以来自标准输入 stdin 一个或多个文件 xff0c 或其它命令的输出 它支持用户自定义函数和动态正则表达式等
  • Ubuntu20.04在vsCode配置opencv

    一 下载opencv xff1a https opencv org releases 我下载的为opencv4 5 4版本 xff0c 可以直接下载 zip文件 xff0c 可以选择其他版本 Sources版本即为 zip版本 xff1a
  • UISearchController使用中的几个坑和一个知识点

    坑1 点击搜索框后 xff0c 搜索框上移到屏幕之外了 不多说了 xff0c 都是坑 因为我之前设置了 UINavigationBar appearance 61 false 把这个去掉好了 坑2 搜索时搜索框和UITableview中间有
  • 深度学习环境搭建(四)之 CUDNN安装

    安装完CUDA Driver和CUDA后 xff0c 还需要安装CUDNN xff0c NVIDIA用于深度学习GPU加速的库 1 下载CUDNN 访问官网链接 xff0c 根据CUDA版本和Ubuntu版本选择CUDNN的版本 前面使用的
  • NMAP 六种端口状态解读

    NMAP 简介 nmap 是一款功能非常强大的扫描工具 xff0c 不仅能对端口扫描 xff0c 还可以在扫描中指定自定义的标志位 xff0c 对自己的 IP 地址进行隐藏伪装为别的 IP 地址 xff0c 还可以根据 nmap 数据库 x
  • IP ID idle 扫描

    IP ID idle 扫描简单介绍 在1998年的时候 xff0c 一个名叫 Antirez 的工程师 xff0c 发现了这种扫描技术 xff0c 攻击者可以通过不直接向目标主机发送报文的形式 xff0c 进行端口扫描 xff0c 而是通过
  • CentOS下编译Linux内核

    前言 编译内核是一项很简单的事情 xff0c 但却是进入Linux内核世界的第一步 xff0c 想要开发内核代码 xff0c 想要了解内核的运行机制 xff0c 第一步就是编译Linux内核 xff0c 以下是在centos7 5环境下编译
  • CentOS下快速升级gcc版本

    前言 很多时候由于gcc版本过低问题 xff0c 导致我们举步维艰 xff0c 从gcc官网下载源码编译又比较费时费力 xff0c 今天我就给大家分享一个快速升级gcc的方法 升级到gcc 6 3 xff1a devtoolset 6已经结
  • Linux带宽测试

    iperf是linux下一款非常实用的测带宽工具 xff0c 是C S模型的 xff0c 支持使用TCP和UDP测试 xff0c 可以测试带宽 xff0c 丢包 xff08 丢包指的是UDP的丢包 xff0c TCP丢包会重传 xff09
  • initramfs详解-----初识initramfs

    为什么需要initramfs 在Linux内核被加载到内存并运行后 xff0c 内核进程最终需要切换到用户太的进程来使用计算机 xff0c 而用户进程又存在于外存储设备上 xff0c 比如systemd进程 xff0c 通常systemd进
  • 抓包展示vlan报文(8021Q)

    VLAN数据帧格式 要使交换机能够分辨不同VLAN的报文 xff0c 需要在报文中添加标识VLAN信息的字段 IEEE 802 1Q协议规定 xff0c 在以太网数据帧的目的MAC地址和源MAC地址字段之后 协议类型字段之前加入4个字节的V
  • KVM NAT 模型

    目录 NAT原理 virbr0与virbr0 nic virbr0 nic作用 关于kvm中的网桥和virbr0 nic网卡需注意以下几点 xff1a NAT原理 virbr0与virbr0 nic zyq 64 zyq ip a 6 vi
  • Linux查看实时网卡流量的几种方式

    工作中 xff0c 我们经常需要查看服务器的实时网卡流量 通常 xff0c 我们会通过这几种方式查看Linux服务器的实时网卡流量 1 sar n DEV 1 2 sar命令包含在sysstat工具包中 xff0c 提供系统的众多统计数据
  • NUMA详解

    目录 NUMA简介 NUMA开启与关闭 查看系统是否支持 关闭方法 numactl hardware介绍 没有安装numactl工具下查看NUMA架构节点数 xff1a 查看每个NUMA节点的CPU使用情况 xff1a 看每个NUMA节点的
  • OpenStack中的CPU与内存超分详解

    目录 什么是超分 CPU超分 查看虚拟机虚拟CPU运行在哪些物理CPU上 内存超分 内存预留 内存共享 如何设置内存预留和内存共享 全局设置 临时设置 什么是超分 超分通常指的是CPU或者GPU的分区或者分割 xff0c 以在一个物理CPU