首页 / 专利库 / 电脑零配件 / 计算机系统 / 硬件 / 一种基于非一致性I/O访问构架的性能监控器及其监控方法

一种基于非一致性I/O访问构架的性能监控器及其监控方法

阅读:1发布:2020-09-24

专利汇可以提供一种基于非一致性I/O访问构架的性能监控器及其监控方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于非一致性I/O 访问 构架的性能监控器及其监控方法,涉及高性能网络下虚拟化领域,包括主机性能监控模 块 、 虚拟机 I/O性能监控模块和虚拟机热页监控模块,主机性能监控模块被配置为利用linux 内核 提供的性能监控单元计算 硬件 资源的使用情况;虚拟机I/O性能监控模块被配置为完成对虚拟机的I/O 请求 进行的监控;虚拟机热页监控模块被配置为通过perf监控虚拟机中内存页的被使用情况。I/O设备的远程访问带来了极大的性能下降和额外的开销,因此本发明所述性能监控器及其监控方法,主要针对虚拟化环境中,虚拟机摆放在距离I/O不同距离的不同 节点 上时虚拟机队硬件资源的使用情况进行分析和监测,方便测量和计算多种资源之间的相互影响作用。,下面是一种基于非一致性I/O访问构架的性能监控器及其监控方法专利的具体信息内容。

1.一种基于非一致性I/O访问构架的性能监控器,其特征在于,包括主机性能监控模虚拟机I/O性能监控模块和虚拟机热页监控模块,所述主机性能监控模块被配置为利用linux内核提供的性能监控单元计算硬件资源的使用情况;所述虚拟机I/O性能监控模块被配置为完成对虚拟机的I/O请求进行的监控;所述虚拟机热页监控模块被配置为通过perf监控虚拟机中内存页的被使用情况;
一种基于非一致性I/O访问构架的性能监控方法,其特征在于,包括以下步骤:
提供主机性能监控模块、虚拟机I/O性能监控模块和虚拟机热页监控模块;
利用linux提供的perf_event接口,对硬件信息进行采集;
使用PERF_TYPE_HARDWARE的不同类型对每个虚拟机的VCPU进行记录;
通过计算缓存未命中的次数以及缓存命中次数计算出缓存命中率;
通过在宿主机中/proc/stat中监测宿主机的运行情况进行计算;
通过整个系统的时间和各线程的运行时间,周期性的计算每个线程的运行时间以计算CPU利用率;
从宿主机中/proc/meminfo文件中提取当前内存的使用量以及内存总量以计算内存使用率;
其中,所述虚拟机I/O性能监控模块的虚拟机I/O性能监控步骤为:
第一步:通过读取/proc/interrupts中网卡中断的信息,获取不同CPU收到的网卡IO中断次数;
第二步:将虚拟机摆放在不同的NUMA节点,绑定在不同的物理CPU上,在虚拟机中跑不同的应用,通过在虚拟机中读取网卡中断信息,查看虚拟机中IO请求数量;
第三步:通过进行对比主机中和不同虚拟机中IO请求情况,判断虚拟机摆放在不同节点上的IO请求情况;
第四步:确定IO密集型操作的虚拟机;
其中,所述虚拟机热页监控模块的虚拟机热页监控步骤为:
第一步:通过perf获取虚拟机中的进程页的使用情况,如果正在使用,则记为当时的“热”,每隔固定时间读取虚拟机内存页使用情况;
第二步:维护一个所有页状态向量P(P1,P2,P3…Pn),在每个检测的瞬时如果内存页正在使用,则置1,如果内存页没有使用,则置0;
第三步:对每隔t时间进行一次采样,每一个内存页维护一个m维FIFO队列,记录每个瞬时某个确定页Pi的页面使用情况Pi(Pi1,Pi2,Pi3…Pim);
第四步:经过m次采样,形成一个内存页使用情况的矩阵;每个页面Pi在j时间点是否被使用的状态记为Pij;
第五步:计算每个页面当前的“热度”,通过给定不同权值W(W1,W2,W3…Wm)对页面热度进行计算,第i个页面的热度Wi=Pi1*Wi1,Pi2*Wi2,Pi3*Wi3…Pim*Wim;
第六步:比较每个页面的“热度”,如果最热页的热度大于两倍次热页,则判断当前页面为“热页”,同时通知系统发现“热页”。
2.如权利要求1所述的基于非一致性I/O访问构架的性能监控器,其特征在于,所述主机性能监控模块对硬件资源监控包括中央处理器周期数、指令数、L1、L2、L3不同级别缓存性能情况以及CPU利用率、内存利用率、内存时延、Last Level Cache命中率。
3.如权利要求1所述的基于非一致性I/O访问构架的性能监控器,其特征在于,所述虚拟机I/O性能监控模块对虚拟机I/O性能监控被配置为将虚拟机摆放在不同的NUMA节点,绑定在不同的物理CPU上,通过获得网卡收到中断请求的次数,来获取I/O请求操作的数量。
4.如权利要求1所述的基于非一致性I/O访问构架的性能监控器,其特征在于,所述虚拟机热页监控模块被配置为通过累计一段时间的内存页情况来判断是否为热页。
5.如权利要求4所述的基于非一致性I/O访问构架的性能监控器,其特征在于,所述热页的判断被配置为通过维护一个5位位图表,记录一段时间内页面被访问的情况,同时监控内存页被访问频繁程度。

说明书全文

一种基于非一致性I/O访问构架的性能监控器及其监控方法

技术领域

[0001] 本发明涉及高性能网络下虚拟化领域,具体涉及一种基于非一致性I/O访问构架的性能监控器及其监控方法。

背景技术

[0002] 虚拟化技术是一种将计算机各种实体资源(如CPU、I/O、内存等)等进行抽象和转换后进行呈现的管理技术。通过虚拟化技术可以将一台物理机虚拟化为一台或者多台虚拟计算机操作系统,使每台虚拟计算机操作系统拥有自己的虚拟硬件(如虚拟内存、虚拟I/O、虚拟CPU等),来使虚拟计算机操作系统可以相互独立的运行而不相互影响。虚拟化技术的发展极大地促进了计算领域的快速发展。虚拟化技术有助于开发人员、使用人员以及维护人员系统、应用以及数据的维护,从而改善IT运维和减少成本支出。
[0003] 虚拟化技术很多情况下是通过VMM(Virtual Machine Monitor,虚拟机监视器)来完成虚拟操作系统和硬件的通信功能。系统上所有虚拟机对硬件资源的访问是由VMM决定的,通过VMM将传统的硬件资源分配给虚拟机进行使用。
[0004] 现代系统的虚拟化程度非常高,所以对虚拟机的调度问题非常的复杂。现代操作系统大多数都采用NMUA(Non-Uniform Memory Access,非一致性内存访问)架构,在虚拟化环境中多个虚拟机竞争内存、CPU等硬件资源。现有对NUMA架构在虚拟化中的应用进行了优化,包括将虚拟机运行在与其相关资源的NUMA节点上、将虚拟机运行内存进行迁移等方式进行硬件资源最优化配置,主要集中在内存和CPU及相关资源的调度和优化,而没有考虑到I/O性能对于NUMA架构的影响。
[0005] I/O设备虚拟化是虚拟化的重要组成部分,I/O虚拟化主要是针对网卡功能的虚拟化,常见的方式有全虚拟化、半虚拟化、SRIOV(Single-root I/O virtualization,单根I/O虚拟化)。随着高性能网络的不断发展,网卡性能不断的提升,如何充分利用网卡性能、高效的访问I/O资源变得尤为重要。因此我们在NUMA架构的基础上提出了NUIOA(Non-Uniform I/O Access,非一致性I/O访问),如附图1中所示的结构。
[0006] I/O设备的远程访问带来了极大的性能下降和额外的开销,因此,本领域的技术人员致于开发一种基于非一致性I/O访问构架的性能监控器及其监控方法,主要针对虚拟化环境中,虚拟机摆放在距离I/O不同距离的不同节点上时虚拟机队硬件资源的使用情况进行分析和监测。

发明内容

[0007] 有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是在虚拟化虚拟化环境中,I/O设备的远程访问带来的极大的性能下降和额外的开销问题。
[0008] 为实现上述目的,本发明提供了一种基于非一致性I/O访问构架的性能监控器,包括主机性能监控模、虚拟机I/O性能监控模块和虚拟机热页监控模块,所述主机性能监控模块被配置为利用linux内核提供的性能监控单元计算硬件资源的使用情况;所述虚拟机I/O性能监控模块被配置为完成对虚拟机的I/O请求进行的监控;所述虚拟机热页监控模块被配置为通过perf监控虚拟机中内存页的被使用情况。
[0009] 进一步地,所述主机性能监控模块对硬件资源监控包括中央处理器周期数、指令数、L1、L2、L3不同级别缓存性能情况以及CPU利用率、内存利用率、内存时延、Last Level Cache命中率。
[0010] 进一步地,所述虚拟机I/O性能监控模块对虚拟机I/O性能监控被配置为将虚拟机摆放在不同的NUMA节点,绑定在不同的物理CPU上,通过获得网卡收到中断请求的次数,来获取I/O请求操作的数量。
[0011] 进一步地,所述虚拟机热页监控模块被配置为通过累计一段时间的内存页情况来判断是否为热页。
[0012] 进一步地,所述热页的判断被配置为通过维护一个5位位图表,记录一段时间内页面被访问的情况,同时监控内存页被访问频繁程度。
[0013] 本发明还提供了一种基于非一致性I/O访问构架的性能监控方法,包括以下步骤:
[0014] 提供主机性能监控模块、虚拟机I/O性能监控模块和虚拟机热页监控模块;
[0015] 利用linux提供的perf_event接口,对硬件信息进行采集;
[0016] 使用PERF_TYPE_HARDWARE的不同类型对每个虚拟机的VCPU进行纪录;
[0017] 通过计算缓存未命中的次数以及缓存命中次数计算出缓存命中率;
[0018] 通过在宿主机中/proc/stat中监测宿主机的运行情况进行计算;
[0019] 通过整个系统的时间和各线程的运行时间,周期性的计算每个线程的运行时间以计算CPU利用率;
[0020] 从宿主机中/proc/meminfo文件中提取当前内存的使用量以及内存总量以计算内存使用率。
[0021] 进一步地,所述CPU利用率为100%*(user_time+nice_time+system_time)/(user_time+nice_time+system_time+idle_time)。
[0022] 进一步地,所述内存使用率为100%*(c_mem/u_mem)。
[0023] 进一步地,所述虚拟机I/O性能监控模块的虚拟机I/O性能监控步骤为:
[0024] 第一步:通过读取/proc/interrupts中网卡中断的信息,获取不同CPU收到的网卡IO中断次数;
[0025] 第二步:将虚拟机摆放在不同的NUMA节点,绑定在不同的物理CPU上,在虚拟机中跑不同的应用,通过在虚拟机中读取网卡中断信息,查看虚拟机中IO请求数量;
[0026] 第三步:通过进行对比主机中和不同虚拟机中IO请求情况,判断虚拟机摆放在不同节点上的IO请求情况;
[0027] 第四步:确定IO密集型操作的虚拟机。
[0028] 进一步地,所述虚拟机热页监控模块的虚拟机热页监控步骤为:
[0029] 第一步:通过perf获取虚拟机中的进程页的使用情况,如果正在使用,则记为当时的“热”,每隔固定时间读取虚拟机内存页使用情况;
[0030] 第二步:维护一个所有页状态向量P(P1,P2,P3…Pn),在每个检测的瞬时如果内存页正在使用,则置1,如果内存页没有使用,则置0;
[0031] 第三步:对每隔t时间进行一次采样,每一个内存页维护一个m维FIFO队列,记录每个瞬时某个确定页Pi的页面使用情况Pi(Pi1,Pi2,Pi3…Pim);
[0032] 第四步:经过m次采样,形成一个内存页使用情况的矩阵;每个页面Pi在j时间点是否被使用的状态记为Pij;
[0033] 第五步:计算每个页面当前的“热度”,通过给定不同权值W(W1,W2,W3…Wm)对页面热度进行计算,第i个页面的热度Wi=Pi1*Wi1,Pi2*Wi2,Pi3*Wi3…Pim*Wim;
[0034] 第六步:比较每个页面的“热度”,如果最热页的热度大于两倍次热页,则判断当前页面为“热页”,同时通知系统发现“热页”。
[0035] 基于现有系统的缺陷,本发明主要建立虚拟化环境下非一致性I/O访问资源的监控器及其监控方法,对高性能网络环境NUMA架构下的硬件资源性能提供一套完整的监控系统,数字化、实时地体现系统性能指标。性能监控器主要由三部分组成,包括基于PMU的主机性能监控模块、虚拟机I/O性能监控模块和虚拟机热页监控模块,反映硬件资源使用情况。
[0036] 主机性能监控模块:linux内核提供了一种PMU(性能监控单元),可以部分计算硬件资源的使用情况,包括中央处理器周期数、指令数、L1、L2、L3不同级别缓存性能情况等,我们对PMU的数据进行了处理和计算,对CPU利用率、内存利用率、内存时延、LLC(Last Level Cache)命中率进行监控和综合分析,更完善、全面的提供硬件性能信息监控主机性能。
[0037] 虚拟机I/O性能监控模块:完成对机器的I/O请求进行的监控。在主机中,通过获得网卡收到中断请求的次数,来获取I/O请求操作的数量。将虚拟机摆放在不同的NUMA节点,绑定在不同的物理CPU上。在虚拟机中跑不同的应用,查看虚拟机中I/O请求数量,通过进行对比主机中和虚拟机中I/O请求情况,来判断虚拟机摆放在不同节点上(绑定在不同CPU上)的I/O请求情况。
[0038] 虚拟机热页监控模块:通过perf监控虚拟机中内存页的被使用情况,通过累计一段时间的内存页情况来判断是否为热页。通过维护一个5位位图表,记录一段时间内页面被访问的情况,监控内存页被访问频繁程度。
[0039] 本性能监测器与现有性能监测器相比有如下优势:
[0040] 1)以极低的性能开销,将虚拟化环境下的关键因素的性能指标进行了综合分析,对主机以及虚拟机的性能进行同时监测,对高性能网络下的非一致性I/O访问的性能进行了完整、详细的监测。
[0041] 2)提出准确高效地虚拟机内性能监控算法,对虚拟化环境下多个虚拟机共用硬件资源的利用情况进行监控,方便测量和计算多种资源之间的相互影响作用。
[0042] 3)通过对基础资源性能的监控,提出了一种虚拟机内热页的监测和计算方法。
[0043] 以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

[0044] 图1是本发明的一个较佳实施例的非一致性I/O访问架构示意图;
[0045] 图2是本发明的一个较佳实施例的虚拟化性能监控器构架示意图;
[0046] 图3是本发明的一个较佳实施例的性能监控器具体实现示意图。

具体实施方式

[0047] 下面结合附图对本发明所述的性能监控器的具体实施方案进行较为详细的阐述和介绍。本发明所述的性能监控器主要包括以下三个模块:
[0048] 如图2所示,基于PMU的主机性能监控模块主要对内存负载和CPU负载进行监控,来获取主机的硬件信息,在计数模式中pmu的运行对于系统性能的开销非常小。利用linux提供的perf_event接口,对硬件信息进行采集,使用PERF_TYPE_HARDWARE的不同类型的纪录,对每个虚拟机的VCPU进行纪录和分析,通过计算缓存未命中的次数以及缓存命中次数计算出缓存命中率。
[0049] 同时通过在宿主机中/proc/stat中监测宿主机的运行情况进行计算,通过整个系统的时间和各线程的运行时间,周期性的计算每个线程的运行时间,获得CPU的利用率。CPU利用率=100%*(user_time+nice_time+system_time)/(user_time+nice_time+system_time+idle_time)。内存使用率需要从/proc/meminfo文件中提取两个数据,当前内存的使用量以及内存总量。内存使用率=100%*(c_mem/u_mem)。
[0050] 虚拟机IO性能监控模块主要用于虚拟机IO请求情况监测,如图3所示,主要分为以下三个步骤:
[0051] 第一步:完成对机器的I/O请求进行的监控。在主机中,通过获得网卡收到中断请求的次数,来获取IO请求操作的数量。通过读取/proc/interrupts中网卡中断的信息,获取不同CPU收到的网卡IO中断次数。
[0052] 第二步:将虚拟机摆放在不同的NUMA节点,绑定在不同的物理CPU上。在虚拟机中跑不同的应用,通过在虚拟机中读取网卡中断信息,查看虚拟机中IO请求数量。
[0053] 第三步:通过进行对比主机中和不同虚拟机中IO请求情况,来判断虚拟机摆放在不同节点上(绑定在不同CPU上)的IO请求情况。
[0054] 第四步:确定IO密集型操作的虚拟机。
[0055] 虚拟机热页监控模块:
[0056] Linux进程中内存页使用情况可以被进程监测工具进行检测,我们基于perf进行进程监测模块的开发,如图3所示,主要分如下几个步骤:
[0057] 第一步:通过perf获取虚拟机中的进程页的使用情况,如果正在使用,则记为当时的“热”,每隔固定时间读取虚拟机内存页使用情况。
[0058] 第二步:维护一个所有页状态向量P(P1,P2,P3…Pn),在每个检测的瞬时如果内存页正在使用,则置1,如果内存页没有使用,则置0。
[0059] 第三步:对隔t时间进行一次采样,每一个内存页维护一个m维FIFO队列,记录每个瞬时某个确定页Pi的页面使用情况Pi(Pi1,Pi2,Pi3…Pim)。
[0060] 第四步:经过m次采样,形成一个内存页使用情况的矩阵。每个页面Pi在j时间点是否被使用的状态记为Pij。
[0061] 第五步:计算每个页面当前的“热度”,通过给定不同权值W(W1,W2,W3…Wm)对页面热度进行计算,第i个页面的热度Wi=Pi1*Wi1,Pi2*Wi2,Pi3*Wi3…Pim*Wim。
[0062] 第六步:比较每个页面的“热度”,如果最热页的热度大于两倍次热页,则称当前页面为“热页”,通知系统,发现“热页”。
[0063] 以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈