高性能云主机来啦!详解zstackvnuma功能

ZStack上海云轴 ZStack上海云轴     2022-10-22     292

关键词:

云轴科技ZStack创建的云主机适用于绝大部分的应用场景,但随着云轴科技ZStack用户数量的不断增长,更多用户提出了高性能云主机的需求。为满足高性能云主机需求,云轴科技ZStack此前为云主机提供了手动配置CPU绑定和vNUMA的接口,但需要用户了解其中原理并且手动分配物理机资源才能进行配置,操作门槛较高。因此ZStack Cloud云平台在4.3.12版本上升级了原有的vNUMA配置方法,带来了全新的智能vNUMA(virtual NUMA)功能。

01、什么是NUMA架构

NUMA(Non-uniform memory access、非统一内存访问)架构是一种为多处理器电脑设计的内存架构,内存访问时间取决于内存相对于处理器的位置。NUMA架构通过对CPU和内存资源分组,引入了本地内存和远程内存。访问本地内存可以直接通过当前node的内存控制器,但是远程内存就需要通过inter-connect通道来访问。这种物理结构决定了在访问远程内存的延迟会比访问本地内存更高。

图1 NUMA架构示例图
ZStack Cloud云平台创建的VM通过操作系统的调度策略,会尽量让同一个VM的CPU、内存资源保持在同一个NUMA node上,当出现资源非常紧张,或者CPU、内存规格不合理导致操作系统难以分配资源的情况时,可能会因为跨NUMA内存访问带来的内存访问延迟而导致VM性能下降。

市面上的一些IaaS软件也提供了vNUMA配置功能,但限制较多:

需要手动设置vCPU绑定,且VM资源优先绑定在物理机同一个NUMA node上;
对VM的CPU数量有要求并且不支持手动绑定到物理机NUMA node上。
对于VM的CPU、内存以及vNUMA node资源与物理机上对应资源,均无法查看两者之间的绑定关系。过去版本的ZStack Cloud云平台也提供了vNUMA配置接口,但需要用户手动规划云主机的vCPU和内存区域如何与物理机上CPU和内存区域绑定,并且手动配置vCPU绑定、vNUMA拓扑等,这一系列流程对于用户来说操作难度较大。

基于上述原因,ZStack Cloud云平台在4.3.12版本上优化了vNUMA配置流程,带来了全新的智能vNUMA功能。

02、ZStack智能vNUMA配置

ZStack 智能vNUMA方案是基于现有的CPU绑定功能拓展而来。基于云主机使用的vCPU和物理机pCPU的绑定关系自动生成与物理机NUMA拓扑一致的云主机 vNUMA拓扑,即根据vCPU pin pCPU的绑定关系,透传pCPU所在的物理机NUMA拓扑信息作为云主机的vNUMA拓扑(NUMA拓扑一致性)。

要开启vNUMA并生效,存在前提条件:

云主机所有的vCPU均绑定了物理机CPU;
云主机的单个vCPU绑定的多个pCPU不能分别属于物理机上多个NUMA node。例如vCPU 0绑定了物理机上NUMA node 0中的CPU 0以及NUMA node 1中的CPU16,由于vCPU 0可能运行在物理机NUMA node 0 或者node 1上,具有不确定性,故而无法开启vNUMA;
配置vNUMA后需要重启才能生效。ZStack智能vNUMA方案在原先允许手动配置CPU绑定的基础上提供了智能绑定,可以自动地将vCPU按照1:1的比例绑定到pCPU上,降低了用户操作的难度。后续只需要用户开启vNUMA开关,启动云主机时各个vNUMA node的内存大小会根据云主机内存大小以及各个vNUMA node中vCPU数量的比例来自动分配,并且自动配置云主机的vNUMA 拓扑信息。云主机启动成功后即可在ZStack Cloud云平台页面上查看vNUMA拓扑与物理机NUMA拓扑之间的绑定关系,让用户更加直观地了解云主机的vCPU和内存与物理机CPU和内存的对应关系。

03、 性能测试

通过在相同的两台物理机上创建相同规格的云主机,进行MySQL性能测试,验证vNUMA开启与关闭状态下的性能表现。

3.1 配置与测试工具

物理机配置

ZStack Cloud云平台配置

测试工具

云主机配置

MySQL配置

3.2 配置与测试工具

使用相同的服务器硬件、云主机规格以及MySQL版本,使用HammerDB在数据库MySQL写入1000个warehouse的测试数据。然后其中一台云主机开启vNUMA,配置如表1所示,并在MySQL配置文件中设置innodb_numa_interleave=1。最后使用HammerDB测试MySQL性能并记录。


表1 开启vNUMA的云主机的配置情况

图2 24C80G云主机vNUMA拓扑图
3.3 测试数据

MYSQL TPM(Transaction Per Minute)性能对比图表:

表2 MYSQL TPM(Transaction Per Minute)性能对比图表

图3 vNUMA启用前后MySQL TPM性能对比图表
MySQL NOPM(New Order Per Minute)性能对比图表:‍

表3 MySQL NOPM(New Order Per Minute)性能对比图表

图4 vNUMA启用前后MySQL NOPM性能对比图表
3.4 结论

vNUMA功能启用后,MySQL性能提升明显,平均提升约为15%,在测试压力较大时性能可以提升18%,提升更明显。

04、 思考

1、本次测试未做CPU isolate、物理机上的内核进程以及中断等,仍然可以在已经被绑定的pCPU上运行,可能会影响到pCPU的性能。

2、本次测试中物理机未启用大页内存,启用大页内存可以减少操作系统对页面状态的维护,并且能够提升Translation Lookaside Buffer(页面缓冲,TLB)的命中率,启用大页内存通常对数据库有性能提升的作用。

云图说|华为云主机安全服务(新版)来啦!

摘要:主机安全服务以工作负载为中心,解决了混合云、多云数据中心服务器的负载保护,集成了主机、容器和网页防篡改的安全防护。本文分享自华为云社区《【云图说】|第265期华为云主机安全服务(新版࿰... 查看详情

云图说|华为云主机安全服务(新版)来啦!

摘要:主机安全服务以工作负载为中心,解决了混合云、多云数据中心服务器的负载保护,集成了主机、容器和网页防篡改的安全防护。本文分享自华为云社区《【云图说】|第265期华为云主机安全服务(新版࿰... 查看详情

阿里云虚拟主机子目录绑定二级域名详解

虚拟主机如何设置二级域名并指向我的一个文件夹?我的主机是阿里云虚拟主机,想设置abc.hhh.com之类的二级域名访问自己空间下的子目录,之前都是hhh.com/abc这样访问,但是太low了,就想设置一下。具体步骤:虚拟主机想绑定二... 查看详情

重磅发布|新一代云原生数据仓库analyticdb「sql智能诊断」功能详解

简介: AnalyticDBForMySQL为用户提供了高效、实时、功能丰富并且智能化的「SQL智能诊断」和「SQL智能调优」功能,提供用户SQL性能调优的思路、方向和具体的方法,降低用户使用成本,提高用户使用ADB的效率SQL是... 查看详情

重磅发布|新一代云原生数据仓库analyticdb「sql智能诊断」功能详解

简介:AnalyticDBForMySQL为用户提供了高效、实时、功能丰富并且智能化的「SQL智能诊断」和「SQL智能调优」功能,提供用户SQL性能调优的思路、方向和具体的方法,降低用户使用成本,提高用户使用ADB的效率SQL是一... 查看详情

云主机性能测试方案(代码片段)

目录文章目录目录基础性能测试计算性能——Super_Pi计算性能——CPU调度延时计算性能——内存带宽计算性能——内存时延存储性能——云盘读/写IOPS存储性能——云盘读/写带宽存储性能——云盘读/写时延网络性能——传输速率... 查看详情

cpu漏洞详解(代码片段)

...里云基础设施,旨在为阿里云ECS客户提供丰富功能、高性能且稳定的操作系统服务,欢迎大家使用。) 查看详情

cpu漏洞详解(代码片段)

...里云基础设施,旨在为阿里云ECS客户提供丰富功能、高性能且稳定的操作系统服务,欢迎大家使用。) 查看详情

mysql主从同步详解(代码片段)

...ysql主从原理1.1基本介绍MySQL内建的复制功能是构建大型,高性能应用程序的基础。将MySQL的数亿分布到到多个系统上去,这种分步的机制,是通过将MySQL的某一台主机的数据复制到其它主机(Slave)上,并重新执行一遍来实现的。复... 查看详情

mysql主从同步详解(代码片段)

...ysql主从原理1.1基本介绍MySQL内建的复制功能是构建大型,高性能应用程序的基础。将MySQL的数亿分布到到多个系统上去,这种分步的机制,是通过将MySQL的某一台主机的数据复制到其它主机(Slave)上,并重新执行一遍来实现的。复... 查看详情

linux修改主机名命令详解

from Linux修改主机名命令详解-云+社区-腾讯云(tencent.com)Linux修改主机名命令1、如果只需要临时更改主机名,可以使用hostname命令。sudohostname<new-hostname>#例如:sudohostnamemyDebian这条命令不会更改/etc/hostname文件中的静态主机名... 查看详情

zstackcloud4.4.24新功能:内存快照技术详解

内存快照,顾名思义,是包含云主机运行时内存状态的快照。在近期发布的ZStackCloud4.4.24中,新增支持云主机内存快照。该功能主要基于快照组实现,在快照组已提供磁盘一致性的基础上,新增提供应用一致性... 查看详情

zstackcloud4.4.24新功能:内存快照技术详解

内存快照,顾名思义,是包含云主机运行时内存状态的快照。在近期发布的ZStackCloud4.4.24中,新增支持云主机内存快照。该功能主要基于快照组实现,在快照组已提供磁盘一致性的基础上,新增提供应用一致性... 查看详情

redis学习---阿里云redis多线程性能增强版详解

【原文】https://www.toutiao.com/i6594620107123589635/摘要Redis做为高性能的K-V数据库,由于其高性能,丰富的数据结构支持,易用等特性,而得到广泛的应用。但是由于redis单进程单线程的模型限制,单RedisServerQPS最高只能达到10万级别。... 查看详情

云主机实现pptp及nat功能

阿里云、腾讯云云主机实现PPTP和NAT功能,Iptable配置如下:云主机系统Centos6.864bit不需要增加NAT网和其他云插件*filter:INPUTACCEPT[394:32816]:FORWARDACCEPT[0:0]:OUTPUTACCEPT[387:33334]:INPUTACCEPT[0:0]:FORWARDACCEPT[0:0]:OUTPUTACCEPT[0:0]-AIN 查看详情

喵呜:程序环境来啦来啦

文章目录前言程序的翻译环境和执行环境详解编译+链接前言重点:程序的翻译环境程序的执行环境详解:C语言程序的编译+链接程序的翻译环境和执行环境在ANSIC的任何一种实现中,存在两个不同的环境。第1种... 查看详情

版本发布公告hmscore6.5.0来啦

新能力3DEngine3DEngine提供高性能、高画质、高扩展性的实时3D引擎,并提供便捷高效的可视化开发工具。开发者可基于华为的3DStudio开发工具,通过图形和渲染、动画、UI等功能模块,打造高品质的3D应用。同时引擎也开... 查看详情

150倍加速机械盘,ucloud云主机io加速技术揭秘

...能力和磁盘的访问延迟之间的差距逐渐扩大,使得用户云主机的磁盘IO经常成为严重的性能瓶颈,云计算环境下更加明显。针对机械盘IO性能低下的问题,我们通过自研的云主机IO加速方案,使4K随机写的最高性能由原来的300IOPS提... 查看详情