CN117311910B - 一种高性能虚拟密码机运行方法 - Google Patents
一种高性能虚拟密码机运行方法 Download PDFInfo
- Publication number
- CN117311910B CN117311910B CN202311606172.9A CN202311606172A CN117311910B CN 117311910 B CN117311910 B CN 117311910B CN 202311606172 A CN202311606172 A CN 202311606172A CN 117311910 B CN117311910 B CN 117311910B
- Authority
- CN
- China
- Prior art keywords
- machine
- virtual
- memory
- cpu
- prompt information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000013468 resource allocation Methods 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims description 9
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Abstract
本发明公开了一种高性能虚拟密码机运行方法,方法包括:S1.获取物理机上的资源信息,为虚拟密码机计算最佳提示信息并存储该最佳提示信息;S2.配置虚拟密码机的CPU亲和性策略;S3.配置虚拟密码机的可保证的内存策略;S4.为虚拟密码机寻找满足内存请求大小的单个NUMA节点作为目标NUMA节点;S5.判断所述作为目标NUMA节点的所述单个NUMA节点是否满足虚拟密码机请求的内存空间大小,如果是,执行步骤S7,如果否,执行步骤S6;S6.为虚拟密码机寻找一组NUMA节点作为目标NUMA节点,然后执行步骤S7;S7.为虚拟密码机配置VF设备分配策略;S8.根据虚拟密码机配置的具体策略,做出与拓扑结构相对应的资源分配决定,得出最优解。
Description
技术领域
本发明属于密码工程技术领域,具体涉及一种高性能虚拟密码机运行方法。
背景技术
近年来,随着纳米工艺、SoC技术的快速发展,密码安全芯片的性能突飞猛进,单芯片加密速率已经高达40Gbps。随着云计算技术的普及,云上密码应运而生,为充分发挥超高速密码芯片的性能,密码芯片制造商开始基于SR-IOV技术提供多路并行的虚拟化PCI-E密码卡的能力,下游密码厂商在此基础上构建容器化的虚拟密码机,为租户/业务系统提供云上密码服务。例如现有技术CN108228316A就公开了一种密码设备虚拟化的方法及设备。而为了满足云计算、大数据、人工智能等需要高性能、高可靠密码运算需求应运而生的云密码机设备,往往具有较高的硬件配置参数,如多核心CPU、多插槽内存条、基于SR-IOV虚拟化的超高速PCI-E密码卡等。然而,致力于为云租户提供按需供给、弹性分配、动态扩容的云密码服务平台,一般都是将CPU、内存、VF等底层资源随机分配给虚拟密码机,具体处理机制由容器运行时根据当前资源使用状况进行动态调度、分配。
在Linux下,Control Groups控制组提供了对CPU、内存等资源的控制机制,允许对某一进程,或者一组进程所用到的资源进行分配,保证其正常、平稳的运行。而容器化技术,就是在建立在这种底层机制上进行实现的。目前,几乎所有使用容器实现虚拟密码机来为租户/业务系统提供云密码服务的厂商都是采用的这种技术路线。现有技术CN105243321A公开了一种基于容器虚拟化技术的密码机、实现及工作方法,通过vHSM 管理模块将 vHSM镜像解压并安装到指定目标物理密码机的目录中 ;并进行 vHSM 容器配置及应用配置,指定 vHSM 使用的硬件资源配额 ;通过 vHSM 管理模块进行 vHSM 应用配置,指定 vHSM密码机应用的运行设定 ;然后 vHSM 管理模块根据 vHSM 容器配置及应用配置创建 vHSM,并运行vHSM。然而,如附图1所示,和真正的物理机不同,容器中所谓的CPU核并不是真正的物理核,而是通过CGroups的CPU子系统在容器调度的时候给其满足一定的CPU执行时间;容器中的内存管理模型也是通过CGroups的内存子系统根据当前系统中的内存使用情况进行实时调度的;同理,高性能PCI-E密码卡在基于SR-IOV技术为虚拟密码机提供VF时同样也是根据虚拟通道的占用情况进行动态分配的。
这种完全依赖Linux CGroups内核机制的方式虽然使用方便、实现简单,也基本能满足大部分租户/业务系统的密码运算需求,但在高并发、低延迟和高吞吐量的并行计算场景下,将会造成资源抢占、性能干扰和嘈杂的邻居问题。此外,这种粗粒度的资源分配方式,并不能充分发挥出超高速密码芯片的性能而造成密码计算资源浪费问题。
因此,如何克服现有技术的缺陷,成为本技术领域亟待解决的课题。
发明内容
为克服上述现有技术的不足,本发明提供了一种高性能虚拟密码机运行方法,具体采用如下技术方案:
一种高性能虚拟密码机运行方法,所述方法包括下列步骤:
S1.获取物理机上的资源信息, 为虚拟密码机计算最佳提示信息并存储该最佳提示信息;
S2.配置虚拟密码机的CPU亲和性策略;
S3.配置虚拟密码机的可保证的内存策略;
S4.为虚拟密码机寻找满足内存请求大小的单个NUMA节点作为目标NUMA节点;
S5.判断所述作为目标NUMA节点的所述单个NUMA节点是否满足虚拟密码机请求的内存空间大小,如果是,执行步骤S7,如果否,执行步骤S6;
S6.为虚拟密码机寻找一组NUMA节点作为目标NUMA节点,然后执行步骤S7;
S7.为虚拟密码机配置VF设备分配策略;
S8.根据虚拟密码机配置的具体策略,做出与拓扑结构相对应的资源分配决定,得出最优解。
进一步,所述步骤S1中的所述资源信息包括物理机的CPU拓扑结构信息、NUMA节点信息、VF设备发布信息;所述最佳提示信息包括目标CPU、目标NUMA节点、目标VF设备。
进一步,所述步骤S2具体包括:
S21.获取所述最佳提示信息;
S22.判断CPU共享池是否满足虚拟密码机CPU资源分配请求,如果是,进行步骤S213,如果否,将判断结果设置为false,并结束此流程,直接执行步骤S8;
S23.结合最佳提示信息为虚拟密码机对请求的CPU资源执行NUMA节点对齐操作,并更新所述最佳提示信息。
进一步,所述步骤S22与步骤S23之间,包括下列步骤:
S231.判断虚拟密码机CPU资源请求值是否为整数型,如果是,执行步骤S232;如果否,进行步骤S23;
S232.判断CPU共享池中是否存在满足条件的整数型CPU资源,如果是,则为目标虚拟密码机分配物理机上的独占CPU资源,相应的CPU会被从CPU共享池中移除,然后执行步骤S23,如果否,直接执行步骤S23。
进一步,所述步骤S3具体包括:
S31.启动物理机,计算内存策略提示信息,包括初始化每个NUMA节点的内存资源信息,从而生成可供使用的内存映射对象,并对其进行分组;
S32.为虚拟密码机计算NUMA节点亲和性,即判断单个NUMA节点上的可分配内存容量是否满足虚拟密码机的内存资源分配请求,如果是,执行步骤S33;如果否,执行步骤S34;
S33.结合内存策略提示信息为虚拟密码机对请求的内存资源分配满足条件的单个NUMA节点,并更新内存策略提示信息;
S34.结合内存策略提示信息为虚拟密码机对请求的内存资源分配满足条件的一组NUMA节点,并更新内存策略提示信息。
进一步,所述步骤S6具体包括:
S61.获取所述最佳提示信息;
S62.确定虚拟密码机分配内存的具体NUMA节点,所述具体NUMA节点至少为两个;
S63.结合所述最佳提示信息为虚拟密码机对请求的内存资源执行分组操作,并更新所述最佳提示信息;
S64.更新cpuset.mems;
S65.使用内核默认的NUMA内存策略,即从固定CPU的NUMA节点分配内存;
S66.将CPU固定到第一个NUMA节点;
S67.判断内存从所述第一个NUMA节点开始被完全消耗,继续执行步骤S68;
S68.虚拟密码机开始消耗第二个NUMA节点的内存。
进一步,所述步骤S7具体包括:
S71.获取步骤S6中更新的最佳提示信息;
S72.判断VF资源配置映射是否满足虚拟密码机VF资源分配请求,如果是,执行步骤S73,如果否,将判断结果设置为false,并结束此流程,直接执行步骤S8;
S73.结合最佳提示信息为虚拟密码机对请求的VF资源执行NUMA节点对齐操作,并更新最佳提示信息。
进一步,所述步骤S8具体包括:
S81.判断是否存在异常跳转流程,如果是,表明当前物理机资源无法满足虚拟密码机分配需求,拒绝生成虚拟密码机,并基于源跳转节点生成错误提示信息,如果否,执行步骤S82;
S82.根据虚拟密码机配置的具体策略对最佳提示信息进行约减以得出最优解,包括结合最佳提示信息为虚拟密码机对请求的CPU资源执行NUMA节点对齐操作、对请求的内存资源分配满足条件的单个或一组NUMA节点、对请求的VF资源执行NUMA节点对齐操作。
本发明的技术方案通过CPU亲和性策略、可保证的内存策略、VF设备分配策略实现独占CPU资源、配置NUMA节点亲和性、限制SR-IOV从相同的NUMA节点分配CPU、VF资源等,以达到与CPU隔离、内存和VF设备局部性有关的虚拟密码机性能优化的目的,提高了对多核心CPU、多插槽内存空间以及基于SR-IOV虚拟化的PCI-E密码卡(VF)进行精细化控制的能力,充分发挥出超高速密码芯片的性能,能够为云租户/业务系统提供低延迟和高吞吐量的密码运算服务,满足了特定场景下低延迟和高吞吐量并行计算的云密码服务的需求。
本发明的技术方案解决了传统容器运行时通过依靠Linux CGroups控制组和SR-IOV网络设备插件无法实现资源局部性优化,即CPU、内存、VF等多种资源相互独立地做出资源分配决策,从而造成对性能或延迟敏感的虚拟密码机受到影响,甚至无法充分发挥高性能PCI-E密码卡的密码运算性能等问题,可以实现物理机中核心资源的精细化控制和分配,避免了在云密码服务平台环境下,由于其多租户性质和基于CGroups控制组的资源共享机制,造成资源抢占、性能干扰和嘈杂的邻居问题,引起同一物理主机上的相邻核心上的虚拟密码机的高频次、大数据量的密码运算活动而引起相同CPU拓扑域上的虚拟密码机性能不稳定的问题。
附图说明
图1为现有技术方案应用环境示意图
图2为本发明的方法流程图。
图3为本发明的方法应用环境示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。
除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
本发明的实施例涉及一种高性能虚拟密码机运行方法,参见附图2所示,包括如下步骤:
S1.获取物理机上的资源信息, 为虚拟密码机计算最佳提示信息并存储该最佳提示信息。
所述资源信息包括物理机的CPU拓扑结构信息、NUMA节点信息、VF设备发布信息。所述最佳提示信息包括目标CPU、目标NUMA节点、目标VF设备。
计算最佳提示信息的目的是为后续步骤(S2-S7)在进行资源分配时提供决策依据。所述最佳提示信息表明要在哪里分配CPU、内存、VF等虚拟密码机运行所必须的系统核心资源。后续步骤(S8)会使用配置的策略进行测试,并基于得出的结论或者生成满足条件的虚拟密码机,或者将其拒绝。
S2.配置虚拟密码机的CPU亲和性策略。
所述CPU亲和性策略使用cpuset子系统实现。所述CPU亲和性策略通过处理执行虚拟密码机的CPU资源分配,旨在最大限度地提高总体CPU利用率,同时最大限度地提高与内存、超高速PCI-E密码卡的交互性能的实现方法,具体包括下列步骤:
S21.获取所述最佳提示信息。
S22.判断CPU共享池是否满足虚拟密码机CPU资源分配请求,如果是,进行步骤S213,如果否,将判断结果设置为false,并结束此流程,直接执行步骤S8。
S23.结合最佳提示信息为虚拟密码机对请求的CPU资源执行NUMA节点对齐操作,并更新所述最佳提示信息。
上述的CPU资源包括CPU总量、预留CPU资源、独占CPU资源和CPU共享池。所述CPU总量具体为物理机上所有的CPU资源。所述预留CPU资源具体为用来为物理机上的操作系统进程预留的CPU资源,以保证物理机运行的稳定性。所述独占CPU资源具体为指定了整数型CPU资源请求的虚拟密码机,会被分配独占CPU资源,相应的CPU资源会从CPU共享池中移除,并与虚拟密码机进行绑定。所述CPU共享池具体为物理机上可分配给虚拟密码机的CPU资源。所有未指定整数型CPU资源请求的虚拟密码机将从CPU共享池中分配运行虚拟密码机进程所需要的CPU资源。具体的,所述CPU共享池 = CPU总量 – 预留CPU资源 – 可独占CPU资源数量。
所述CPU亲和性策略允许为一些应用于特殊场景需求,例如视频流加解密、大文件加解密、数据库存储加解密等在延迟和/或性能方面有较高的要求保证的虚拟密码机设置增强的CPU亲和性和独占性。
所述步骤S22与步骤S23之间,还可以具体包括下列步骤:
S231.判断虚拟密码机CPU资源请求值是否为整数型,如果是,执行步骤S232;如果否,进行步骤S23。
S232.判断CPU共享池中是否存在满足条件的整数型CPU资源,如果是,则为目标虚拟密码机分配物理机上的独占CPU资源,相应的CPU会被从CPU共享池中移除,然后执行步骤S23,如果否,直接执行步骤S23。
这种静态分配增强了CPU亲和性,减少了CPU密集的工作负载在节流时引起的上下文切换。
S3.配置虚拟密码机的可保证的内存策略。
在现代计算机架构中,单个物理NUMA节点(物理内存插槽)可以进一步拆分成多个逻辑NUMA节点,这样做是为了进一步提高性能。物理机上的单NUMA节点内存资源信息包括总内存容量、预留内存容量、可分配内存容量。所述总内存容量具体为单个NUMA节点的内存资源总容量。所述预留内存容量具体为用来为物理机上的操作系统进程预留的内存资源,以保证物理机运行的稳定性。所述可分配内存容量具体为物理机上可分配给虚拟密码机的内存资源。具体的,所述可分配内存容量 = 总内存容量 – 预留内存容量。
所述可保证的内存策略用于为有特殊场景需求的虚拟密码机提供有保障的内存分配能力,具体包括下列步骤:
S31.启动物理机,计算内存策略提示信息,包括初始化每个NUMA节点的内存资源信息,从而生成可供使用的内存映射对象,并对其进行分组。
S32.为虚拟密码机计算NUMA节点亲和性,即判断单个NUMA节点上的可分配内存容量是否满足虚拟密码机的内存资源分配请求,如果是,执行步骤S33;如果否,执行步骤S34。
S33.结合内存策略提示信息为虚拟密码机对请求的内存资源分配满足条件的单个NUMA节点,并更新内存策略提示信息。
S34.结合内存策略提示信息为虚拟密码机对请求的内存资源分配满足条件的一组NUMA节点,并更新内存策略提示信息。
所述可保证的内存策略包括两种内存分配实现方式:单NUMA实现方式、多NUMA实现方式。可保证的内存策略负责跟踪虚拟密码机的内存利用率,找出某个NUMA节点或一组NUMA节点作为最适合虚拟密码机的内存分配和固定。
S4.为虚拟密码机寻找满足内存请求大小的单个NUMA节点作为目标NUMA节点。
这种单NUMA实现方式适用于低延迟和/或高性能的虚拟密码机。
S5.判断所述作为目标NUMA节点的所述单个NUMA节点是否满足虚拟密码机请求的内存空间大小,如果是,执行步骤S7,如果否,执行步骤S6。
S6.为虚拟密码机寻找一组NUMA节点作为目标NUMA节点,然后执行步骤S7。
所述步骤S6具体包括下列步骤:
S61.获取所述最佳提示信息;
S62.确定虚拟密码机分配内存的具体NUMA节点,所述具体NUMA节点至少为两个。
S63.结合所述最佳提示信息为虚拟密码机对请求的内存资源执行分组操作,并更新所述最佳提示信息。
S64.更新cpuset.mems。
S65.使用内核默认的NUMA内存策略,即从固定CPU的NUMA节点分配内存。
S66.将CPU固定到第一个NUMA节点。
S67.判断内存从所述第一个NUMA节点开始被完全消耗,继续执行步骤S68。
S68.虚拟密码机开始消耗第二个NUMA节点的内存。
这种多NUMA实现方式是为了克服单NUMA无法满足虚拟密码机的内存分配需求的补充实现,即如果虚拟密码机所需的内存量超过了单个NUMA节点的容量时,就会通过多NUMA策略寻找最少数量的NUMA节点保证内存。
S7.为虚拟密码机配置VF设备分配策略。VF设备分配策略用于限制为虚拟密码机分配的SR-IOV设备和CPU位于相同的NUMA节点上。
在启动物理机时,由物理机加载设备的内核模块并将PCI-E密码卡驱动程序绑定到PF,创建所需的VF,将所有VF与正确的驱动程序绑定,创建资源配置映射。步骤S1将结合CPU拓扑结构信息、NUMA节点信息、VF设备发布信息等,计算最佳提示信息,表明要在哪里分配CPU、内存、VF等虚拟密码机运行所必须的系统核心资源,为后续步骤提供决策依据。
所述步骤S7具体包括下列步骤:
S71.获取步骤S6中更新的最佳提示信息。
S72.判断VF资源配置映射是否满足虚拟密码机VF资源分配请求,如果是,执行步骤S73,如果否,将判断结果设置为false,并结束此流程,直接执行步骤S8。
S73.结合最佳提示信息为虚拟密码机对请求的VF资源执行NUMA节点对齐操作,并更新最佳提示信息。
VF设备分配策略用于限制为虚拟密码机分配的SR-IOV设备和CPU位于相同的NUMA节点上。
S8.根据虚拟密码机配置的具体策略,做出与拓扑结构相对应的资源分配决定,得出最优解。
最佳提示信息表明要在哪里分配CPU、内存、VF等虚拟密码机运行所必须的系统核心资源。根据虚拟密码机配置的具体策略对最佳提示信息进行约减,做出与拓扑结构相对应的资源分配决定,并基于得出的结论或者生成满足条件的虚拟密码机,或者将其拒绝。
所述步骤S8具体包括下列步骤:
S81.判断是否存在异常跳转流程,如果是,表明当前物理机资源无法满足虚拟密码机分配需求,拒绝生成虚拟密码机,并基于源跳转节点生成错误提示信息,如果否,执行步骤S82。
S82.根据虚拟密码机配置的具体策略对最佳提示信息进行约减以得出最优解,包括结合最佳提示信息为虚拟密码机对请求的CPU资源执行NUMA节点对齐操作、对请求的内存资源分配满足条件的单个或一组NUMA节点、对请求的VF资源执行NUMA节点对齐操作。
根据该步骤,能够实现与CPU隔离、内存和VF设备局部性有关的虚拟密码机性能优化的目的。
参照附图3所示的本发明与现有技术的对比可知,本发明解决了传统容器运行时通过依靠Linux CGroups控制组和SR-IOV网络设备插件无法实现资源局部性优化,即CPU、内存、VF等多种资源相互独立地做出资源分配决策,从而造成对性能或延迟敏感的虚拟密码机受到影响的技术问题。并且,本发明还解决了在云密码服务平台环境下,由于其多租户性质和基于CGroups控制组的资源共享机制,造成资源抢占、性能干扰和嘈杂的邻居问题,实现了独占CPU资源、配置NUMA节点亲和性、限制SR-IOV从相同的NUMA节点分配CPU资源,以达到与CPU隔离、内存和VF设备局部性有关的虚拟密码机性能优化的目的,充分发挥出超高速密码芯片的性能,能够为云租户/业务系统提供低延迟和高吞吐量的密码运算服务。
如上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (4)
1.一种高性能虚拟密码机运行方法,其特征在于,所述方法包括下列步骤:
S1.获取物理机上的资源信息, 为虚拟密码机计算最佳提示信息并存储该最佳提示信息;
S2.配置虚拟密码机的CPU亲和性策略,具体包括:
S21.获取所述最佳提示信息;
S22.判断CPU共享池是否可以满足虚拟密码机CPU资源分配请求,如果是,进行步骤S213,如果否,将判断结果设置为false,并结束此流程,直接执行步骤S8;
S23.结合最佳提示信息为虚拟密码机对请求的CPU资源执行NUMA节点对齐操作,并更新所述最佳提示信息;
S3.配置虚拟密码机的可保证的内存策略,具体包括:
S31.启动物理机,计算内存策略提示信息,包括初始化每个NUMA节点的内存资源信息,从而生成可供使用的内存映射对象,并对其进行分组;
S32.为虚拟密码机计算NUMA节点亲和性,即判断单个NUMA节点上的可分配内存容量是否可以满足虚拟密码机的内存资源分配请求,如果是,执行步骤S33;如果否,执行步骤S34;
S33.结合内存策略提示信息为虚拟密码机对请求的内存资源分配满足条件的单个NUMA节点,并更新内存策略提示信息;
S34.结合内存策略提示信息为虚拟密码机对请求的内存资源分配满足条件的一组NUMA节点,并更新内存策略提示信息;
S4.为虚拟密码机寻找满足内存请求大小的单个NUMA节点作为目标NUMA节点;
S5.判断所述作为目标NUMA节点的所述单个NUMA节点是否可以满足虚拟密码机请求的内存空间大小,如果是,执行步骤S7,如果否,执行步骤S6;
S6.为虚拟密码机寻找一组NUMA节点作为目标NUMA节点,然后执行步骤S7,为虚拟密码机寻找一组NUMA节点作为目标NUMA节点具体包括:
S61.获取所述最佳提示信息;
S62.确定虚拟密码机分配内存的具体NUMA节点,所述具体NUMA节点至少为两个;
S63.结合所述最佳提示信息为虚拟密码机对请求的内存资源执行分组操作,并更新所述最佳提示信息;
S64.更新cpuset.mems;
S65.使用内核默认的NUMA内存策略,即从固定CPU的NUMA节点分配内存;
S66.将CPU固定到第一个NUMA节点;
S67.判断内存从所述第一个NUMA节点开始被完全消耗,继续执行步骤S68;
S68.虚拟密码机开始消耗第二个NUMA节点的内存;
S7.为虚拟密码机配置VF设备分配策略,具体包括:
S71.获取步骤S6中更新的最佳提示信息;
S72.判断VF资源配置映射是否可以满足虚拟密码机VF资源分配请求,如果是,执行步骤S73,如果否,将判断结果设置为false,并结束此流程,直接执行步骤S8;
S73.结合最佳提示信息为虚拟密码机对请求的VF资源执行NUMA节点对齐操作,并更新最佳提示信息;
S8.根据虚拟密码机配置的具体策略,做出与拓扑结构相对应的资源分配决定,得出最优解。
2.根据权利要求1所述的一种高性能虚拟密码机运行方法,其特征在于,所述步骤S1中的所述资源信息包括物理机的CPU拓扑结构信息、NUMA节点信息、VF设备发布信息;所述最佳提示信息包括目标CPU、目标NUMA节点、目标VF设备。
3.根据权利要求1所述的一种高性能虚拟密码机运行方法,其特征在于,所述步骤S22与步骤S23之间,包括下列步骤:
S231.判断虚拟密码机CPU资源请求值是否为整数型,如果是,执行步骤S232;如果否,进行步骤S23;
S232.判断CPU共享池中是否存在满足条件的整数型CPU资源,如果是,则为目标虚拟密码机分配物理机上的独占CPU资源,相应的CPU会被从CPU共享池中移除,然后执行步骤S23,如果否,直接执行步骤S23。
4.根据权利要求1所述的一种高性能虚拟密码机运行方法,其特征在于,所述步骤S8具体包括:
S81.判断是否存在异常跳转流程,如果是,表明当前物理机资源无法满足虚拟密码机分配需求,拒绝生成虚拟密码机,并基于源跳转节点生成错误提示信息,如果否,执行步骤S82;
S82.根据虚拟密码机配置的具体策略对最佳提示信息进行约减以得出最优解,包括结合最佳提示信息为虚拟密码机对请求的CPU资源执行NUMA节点对齐操作、对请求的内存资源分配满足条件的单个或一组NUMA节点、对请求的VF资源执行NUMA节点对齐操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311606172.9A CN117311910B (zh) | 2023-11-29 | 2023-11-29 | 一种高性能虚拟密码机运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311606172.9A CN117311910B (zh) | 2023-11-29 | 2023-11-29 | 一种高性能虚拟密码机运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117311910A CN117311910A (zh) | 2023-12-29 |
CN117311910B true CN117311910B (zh) | 2024-02-27 |
Family
ID=89250277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311606172.9A Active CN117311910B (zh) | 2023-11-29 | 2023-11-29 | 一种高性能虚拟密码机运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311910B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199718A (zh) * | 2014-08-22 | 2014-12-10 | 上海交通大学 | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
CN108255598A (zh) * | 2016-12-28 | 2018-07-06 | 华耀(中国)科技有限公司 | 性能保证的虚拟化管理平台资源分配系统及方法 |
CN113691465A (zh) * | 2020-05-19 | 2021-11-23 | 阿里巴巴集团控股有限公司 | 一种数据的传输方法、智能网卡、计算设备及存储介质 |
CN114416277A (zh) * | 2021-12-06 | 2022-04-29 | 天翼电子商务有限公司 | 一种基于numa架构的容器部署亲和性配置优化的方法 |
CN115080242A (zh) * | 2022-06-30 | 2022-09-20 | 济南浪潮数据技术有限公司 | 一种pci设备资源统一调度的方法、装置及介质 |
CN115883601A (zh) * | 2022-11-24 | 2023-03-31 | 西安交通大学 | 一种车联网协作资源分配方法、系统、设备及介质 |
CN116566617A (zh) * | 2023-05-10 | 2023-08-08 | 中安云科科技发展(山东)有限公司 | 一种单个虚拟化密码机的计算资源调整方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200322287A1 (en) * | 2020-06-18 | 2020-10-08 | Intel Corporation | Switch-managed resource allocation and software execution |
US20230004414A1 (en) * | 2021-07-05 | 2023-01-05 | VNware, Inc. | Automated instantiation and management of mobile networks |
US20220004439A1 (en) * | 2021-09-16 | 2022-01-06 | Intel Corporation | Cluster identifier remapping for asymmetric topologies |
-
2023
- 2023-11-29 CN CN202311606172.9A patent/CN117311910B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199718A (zh) * | 2014-08-22 | 2014-12-10 | 上海交通大学 | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
CN108255598A (zh) * | 2016-12-28 | 2018-07-06 | 华耀(中国)科技有限公司 | 性能保证的虚拟化管理平台资源分配系统及方法 |
CN113691465A (zh) * | 2020-05-19 | 2021-11-23 | 阿里巴巴集团控股有限公司 | 一种数据的传输方法、智能网卡、计算设备及存储介质 |
CN114416277A (zh) * | 2021-12-06 | 2022-04-29 | 天翼电子商务有限公司 | 一种基于numa架构的容器部署亲和性配置优化的方法 |
CN115080242A (zh) * | 2022-06-30 | 2022-09-20 | 济南浪潮数据技术有限公司 | 一种pci设备资源统一调度的方法、装置及介质 |
CN115883601A (zh) * | 2022-11-24 | 2023-03-31 | 西安交通大学 | 一种车联网协作资源分配方法、系统、设备及介质 |
CN116566617A (zh) * | 2023-05-10 | 2023-08-08 | 中安云科科技发展(山东)有限公司 | 一种单个虚拟化密码机的计算资源调整方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117311910A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3754498B1 (en) | Architecture for offload of linked work assignments | |
US8725875B2 (en) | Native cloud computing via network segmentation | |
US9268394B2 (en) | Virtualized application power budgeting | |
CN108701058B (zh) | 虚拟化传感器 | |
US8752055B2 (en) | Method of managing resources within a set of processes | |
US10108460B2 (en) | Method and system for integrated deployment planning for virtual appliances | |
CN112955869A (zh) | 功能即服务(faas)系统增强 | |
CN105843683B (zh) | 用于动态优化平台资源分配的方法、系统和设备 | |
US20220029929A1 (en) | Technologies that provide policy enforcement for resource access | |
US11579908B2 (en) | Containerized workload scheduling | |
CN112527494A (zh) | 信息处理设备和方法以及非暂态计算机可读记录介质 | |
US9471387B2 (en) | Scheduling in job execution | |
CN105589660B (zh) | 一种数据分布方法及装置 | |
KR20100062958A (ko) | 컴퓨팅 자원들을 제어하는 기술 | |
KR102320324B1 (ko) | 쿠버네티스 환경에서의 이종 하드웨어 가속기 활용 방법 및 이를 이용한 장치 | |
US20150160973A1 (en) | Domain based resource isolation in multi-core systems | |
Kale | Virtual machine migration techniques in cloud environment: A survey | |
US11842218B2 (en) | Computing resource allocation for virtual network functions | |
CN117311910B (zh) | 一种高性能虚拟密码机运行方法 | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
US11868805B2 (en) | Scheduling workloads on partitioned resources of a host system in a container-orchestration system | |
Thaha et al. | Data location aware scheduling for virtual Hadoop cluster deployment on private cloud computing environment | |
CN109144722B (zh) | 一种多应用高效共用fpga资源的管理系统及方法 | |
US20140237149A1 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
US11954534B2 (en) | Scheduling in a container orchestration system utilizing hardware topology hints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |