智能监控大规模数据中心集群计算节点的系统和方法

文档序号:6622295阅读:318来源:国知局
智能监控大规模数据中心集群计算节点的系统和方法
【专利摘要】提出一种智能监控大规模数据中心集群计算节点的系统和方法,由系统中的监控节点采集计算节点的硬件微架构数据指标和运行的应用程序的进程相关的数据指标,并将所述数据指标发送到系统中的监控设备,由监控设备执行大数据分析,并将结果发送到用户端设备显示给用户。所述系统和方法能够采集计算节点微架构数据指标和运行的应用程序进程数据指标,实现智能大数据分析,自动定位发生故障的计算节点并提供故障原因。
【专利说明】智能监控大规模数据中心集群计算节点的系统和方法

【技术领域】
[0001] 本发明涉及计算机【技术领域】,具体涉及一种智能监控大规模数据中心集群计算节 点的系统和方法。

【背景技术】
[0002] 随着人类社会的不断进步,科学技术的发展,人们不但对自然界的认识越来越广 泛,而且对未知世界探索的需求也越来越迫切。这就使得人类撑握的信息数据的量急剧性 的增长,而与此同时,这些海量的信息数据都需要及时的分析和处理。例如,一个大型天文 射电望远镜阵列一秒钟就能产生100GB以上的宇宙微波数据,这些数据都需要及时得到分 析;再如,在粒子物理研究领域,一台大型强子对撞机一次对撞的数据也是以TB为单位来 计量的;此外,像人类基因组工程、石油勘探、天气预报等等领域也对计算能力提出了越来 越高的要求。在这种大背景下数值计算已然成为了除实验、理论分析之外的第三种极其重 要的科学探索手段。正是基于这样的现实,促使了当今世界各个科技强国都在不遗余力的 大力发展超级计算机。如,在2013年12月发布的世界T0P500中,排名第一的中国"天河二 号(TH-2)"就已经达到了 54.9PFlops的峰值速度,共使用了 16000余个计算节点。
[0003] 除此之外,随着云计算、大数据、物联网等新型技术的发展,出现了越来越多的大 型数据中心,云计算中心。它们动辄拥有数以万计的计算机节点。如谷歌(Google)位于美 国俄勒冈州的Dalles数据中心拥有约15万台服务器节点。在这样大规模的数据中心中, 计算节点的性能监控,故障定位,故障恢复,以及中心整体效率统计等等,都存在着前所未 有的挑战。因此,如何高效的管理和利用一个大规模乃至超大规模的数据中心,是当今世界 各国都在努力探索的一个热门领域。
[0004] 长期以来,数据中心的监控管理都是靠人工半自动的方式来完成的。负责运维的 人员需要实时的查看集群的运行状态,一旦出现问题,虽然有时可以定位节点位置,却往往 不能准确定位故障的设备,还需要费时费力通过工作人员的经验来判断、排障;集群的用户 虽然可以通过众多的作业调度软件了解自己的作业情况,却很少可以统计到作业的历史分 析;再者集群的决策者往往无法直接从集群上得到有关费用支出、使用效率、人员工作效 率、费效比等有关决策的信息资料,只能通过对大量数据的人工分析来决策,费时费力。此 夕卜,应用开发人员也往往无法从集群上获得优化应用软件急需的硬件微架构、系统进程、堆 栈、模块错误崩溃统计等信息,需要凭经验通过大量的实验得到,即费时又费力。


【发明内容】

[0005] 本发明提出了一种智能监控大规模数据中心集群计算节点的系统和方法,具有大 型化、多功能、面向多用户群的特点。它拥有完善的智能分析和统计功能,可以为不同层次 用户的决策提供数据参考依据。
[0006] 所述系统,包括:安装在数据中心集群计算节点上的监控节点、与各个监控节点通 信的监控设备、以及用户终端设备,其特征在于:
[0007] 所述监控节点,用于通过获得计算节点的硬件控制寄存器的控制权,采集所述计 算节点的硬件微架构数据指标,通过获得操作系统内核的控制权,获得与所述计算节点上 运行的应用程序的进程相关的数据指标,并将所述数据指标发送到监控设备;
[0008] 所述监控设备,用于接收所述数据指标,基于所述数据指标执行大数据分析,并将 所述分析的结果发送到用户终端设备;
[0009] 所述用户终端设备,用于接收所述结果并显示给用户。
[0010] 所述方法包括:
[0011] 启动安装在计算节点中的监控节点;
[0012] 所述监控节点通过获得计算节点的硬件控制寄存器的控制权,采集所述计算节点 的硬件微架构数据指标,通过获得操作系统内核的控制权,获得与所述计算节点上运行的 应用程序的进程相关的数据指标,并将所述数据指标发送到监控设备;
[0013] 所述监控设备接收所述数据指标,基于所述数据指标执行大数据分析,并将所述 分析的结果发送到用户终端设备;
[0014] 所述用户终端设备接收所述结果并显示给用户。
[0015] 特别地,所述分析包括:根据所述数据指标定位发生故障的计算节点,以及确定故 障原因。
[0016] 特别地,所述硬件微架构数据指标包括CPU的实时浮点运行速度、流SMD指令扩 展集SSE单元利用率、高级向量扩展集AVX单元利用率、向量指令向量化率、完成每条指令 所需的时钟数CPI、最后一级缓存LLC命中率、内存带宽、PCI快速总线接口 PCI-E设备带 宽、缓存命中/未命中率中的一种或多种的组合;所述与所述计算节点上运行的应用程序 的进程相关的数据指标包括进程切换次数、堆栈信息、堆内存分配情况中的一种或多种的 组合。
[0017] 特别地,所述数据指标为CPU的实时浮点运行速度和/或完成每条指令所需的时 钟数CPI,所述分析包括:当所述数据指标在预设时间段内持续低于预设的阈值,则判断处 理器发生故障,并确定故障的原因为处理器异常降频。
[0018] 特别地,所述监控节点还采集由操作系统提供的CPU利用率、内存利用率、本地磁 盘10数据和/或以太网吞吐量。
[0019] 特别地,其中所述计算节点的硬件控制寄存器为所述计算节点的处理器的性能监 控单元PMU中的MSR控制寄存器。
[0020] 本发明的有益效果是:
[0021] 通过在各个计算节点的性能监控装置提取必要的系统级性能指标信息,并发送由 监控管理节点来负责维护。而监控管理节点,则具有异常的识别和报警能力,同时按用户群 分别挖掘所记录的历史数据,并将结果反馈给用户。同时,监控管理节点还可以按需、按时 间段,对指定的监控节点提取硬件微架构特征及进程、堆栈等方面的信息。从而实现对大规 模集群监控的多用户化、多功能化和智能化。
[0022] 为了实现监控的实效性,各计算节点的监控端实现了每秒刷新的监控模式。同时 为了减少计算节点的资源占用,各计算节点仅提取用于数据分析所必须的最小指标项,包 括CPU利用率,内存利用率,本地磁盘读写以及以太网吞吐量等十数个指标。
[0023] 为了实现多功能化,本智能监控系统还提供了对硬件微架构相关的指标的监控分 析,如浮点运行速度,向量化率,内存带宽,IB带宽等等。但由于这部分内容在监控时对系 统资源的占用相对较多,因此,它们根据用户指令按需启动。
[0024] 为了实现多用户化,本智能监控系统提出了涵盖管理层、运维层、实际应用用户层 和应用开发层,四个层次的分级视图。
[0025] 为了实现智能化,本智能监控系统发明了一种数据挖掘的分析方法,它依据基本 的性能监控数据信息,通过计算挖掘出不同层次用户最感兴趣的统计指标。

【专利附图】

【附图说明】
[0026] 图1是本发明提出的一种智能监控大规模数据中心集群的系统框图
[0027] 图2是本发明提出的一种智能监控大规模数据中心集群的方法的流程图

【具体实施方式】
[0028] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明做进一 步地详细描述。
[0029] 参见附图1,示出了本发明提出的一种智能监控大规模数据中心集群计算节点的 系统,包括安装在数据中心集群计算节点上的监控节点、与各个监控节点连接的监控设备、 以及用户终端设备。其中数据中心集群计算节点具有相应的硬件设备,例如处理器CPU、内 存、硬盘、以太网络控制器等,在所述计算节点上运行操作系统以及应用软件;监控设备包 括主监控节点和数据库,主监控节点与安装在上述计算节点上的各个监控节点通信,能够 获得数据中心集群计算节点的硬件和软件运行数据,例如CPU利用率、内存利用率、本地磁 盘10数据、以太网吞吐量,以及针对该计算节点硬件的微架构数据指标和运行的应用程序 进程级的数据指标。主监控节点将获得的上述数据写入数据库中,自动执行大数据挖掘并 保存大数据挖掘后获得的结果。用户通过用户端设备从数据库中读取结果并显示。用户还 可以通过用户终端设备向监控设备输入用户定义的数据挖掘程序,由监控设备提取数据中 心集群节点的相应数据指标,按照用户定义的数据挖掘程序执行大数据挖掘并向用户显示 结果。
[0030] 参见附图2,本发明提出的一种智能监控大规模数据中心集群计算节点的方法由 数据采集、大数据挖掘、分级展示、以及故障定位和报警等几个主要步骤组成。其中数据采 集包括基本数据采集和高级数据采集,基本数据采集由系统自动执行,无需用户设置;高级 数据采集需要按照用户意愿设置。
[0031] 1.数据采集
[0032] 数据采集是指在数据中心集群计算节点上安装监控节点,提取该计算节点的CPU 利用率、内存利用率、本地磁盘10数据、以太网吞吐量,以及针对该计算节点硬件的微架构 数据指标和运行的应用程序进程级的数据指标。其中,针对计算节点硬件的微架构数据指 标和应用程序进程级的数据指标的采集称为高级数据采集,其余指标的采集称为基本数据 采集。基本数据采集为系统默认设置的步骤,无需用户干预即可执行,高级数据采集根据用 户需求而设置执行。由于需要保证性能指标数据的实效性,监控节点必须满足秒级刷新的 采集能力,同时必须保证极低的计算节点资源占用率。
[0033] 本发明提出的数据采集方法不同于现有技术中提出的方法。在现有技术中,数据 采集仅仅是收集操作系统本身提供的一些指标数据,即数据指标的采集依赖于计算节点上 运行的操作系统,对于操作系统无法提供的数据指标,监控节点无法获得。而本发明所提出 的数据采集方法,不仅仅能完成上述由操作系统提供的数据指标的采集,还可以采集一些 硬件微架构数据指标,例如CPU的实时浮点运行速度、流SIMD指令扩展集SSE(Streaming SIMD Extensions)单兀利用率、高级向量扩展集 AVX (Advanced Vector Extensios)单兀 利用率、向量指令向量化率、完成每条指令所需的时钟数(CPI)、最后一级缓存LLC(Last Level Cache)命中率、转换后备缓冲器 TLB(Translation Lookaside Buffer)参数、内存 带宽、PCI快速总线接口 PCI-E(PCI Express)设备带宽、缓存命中/未命中(cache hit/ miss)率、TLB单元等等。此外,还可以采集一些应用程序进程级的数据指标,如进程切换次 数、堆栈信息、堆内存分配情况等等。这些指标对于挖掘应用软件的性能、分析集群特性和 定位软件级故障具有十分重要的意义。
[0034] 由于需要采集硬件和进程级数据指标,因此本发明提出的监控节点通过软件客户 端的方式实现。所述监控节点对基本数据的采集同现有技术提出的方法,在此不再赘述,对 高级数据采集的过程具体介绍如下:
[0035] 对上述硬件微架构数据指标的提取需要通过对硬件中相关寄存器的控制来实现。 如,对于处理器微架构数据指标,主要是通过对处理器中的性能监控单元PMU (Performance Monitoring Unit)进行控制来实现。因此,这就要求本案的监控节点拥有最高的root权 限。对PMU的控制流程介绍如下:
[0036] S1 :获取计算节点的处理器的PMU中的MSR(Module Specific Register)控制寄存 器的控制权;
[0037] S2 :将相关事件的编码和掩码写入已控制的MSR控制寄存器中,并设置该控制寄 存器,开始对相关事件计数,例如,当采集LLC命中率数据指标时,先将LLC命中率的编码和 掩码写入MSR控制寄存器中,然后设置该寄存器开始计数LLC命中数量,计数结束后读取该 控制寄存器中的计数数量,统计LLC命中率。
[0038] 对系统内核级指标的提取需要对内核中相关代码的监控来实现。例如对进程切换 的监控,需要监控内核中有关进程管理部分的代码中控制进程的部分。当计算节点启动,内 核成功加载后即开始监控。因此,监控节点必须拥有对内核级的控制权。对系统内核级指 标的提取可能会稍微影响系统的性能,因此可针对监控的场合按需提供。
[0039] 2.大数据挖掘和分级展示
[0040] 上述安装在计算节点中的监控节点还具有向监控设备发送数据的能力,由监控设 备统一接收和管理各个监控节点。监控设备中的主监控节点负责从各个监控节点接收采集 的数据指标,以及向各个监控节点发送控制命令,所述控制命令包括所述系统默认产生的 基本数据采集命令,以及根据用户设置而产生的高级数据采集命令,所述各个监控节点根 据所述控制命令执行相应数据指标的采集。同时主监控节点还负责将接收的所述数据指标 按一定的存储格式存入数据库中,作为下一步数据挖掘的输入数据。
[0041] 为了实现智能化,监控设备还具有大数据挖掘能力,它根据预设统计设置对数据 库中保存的数据指标进行大数据处理,并按照预设的分级展示方案,分别为不同的用户提 供数据统计和分析结果。此外,监控设备还具有用户接口,可以接收用户自定义的数据挖掘 算法,并按照所述数据挖掘算法执行数据挖掘。所述预设的统计设置包括:
[0042] -、管理层用户群指标
[0043] 1.生产速率(任务通量)
[0044] a.实时运行任务、应用数
[0045] b. -周(月、年)内,每天完成(失败)的任务数【列图、表】
[0046] c. 一周(月、年)内,平均每天完成(失败)任务数
[0047] d. -周(月、年)内,总完成(失败)任务数
[0048] e.每任务时间
[0049] 2.运维成本(能耗)(计算、存储、交换、机房【制冷】)
[0050] a.实时总功耗
[0051] b. -周(月、年)内,每天能耗(KW/h)【列图、表】
[0052] c. 一周(月、年)内,平均每天能耗(KW/h)
[0053] d. 一周(月、年)内,总能耗(KW/h)
[0054] e.设备折旧、机房整体折旧费用监控、及各费用单元间比值统计、单位费用作业完 成量
[0055] 3.资产利用效率
[0056] a. -周(月、年)内,每天集群占空比 [0057] b. -周(月、年)内,平均每天集群占空比
[0058] c. 一周(月、年)内,每天集群繁忙时段(计算每小时集群占空比)
[0059] d. -周(月、年)内,平均繁忙时段(24小时时段上的年平均占空比)
[0060] e.实时在线用户数(特定授权、查看人员信息)
[0061] f. 一周(月、年)内,每天在线用户数【列图、表】
[0062] g. -周(月、年)内,平均每天在线用户数
[0063] L 一周(月、年)内,每天平均用户完成任务数
[0064] i. 一周(月、年)内,平均每用户完成任务数
[0065] 4.设备健康度
[0066] a.实时故障节点数、故障率
[0067] b. -周(月、年)内,每天故障节点数、故障率【列图、表】
[0068] c. 一周(月、年)内,平均每天故障节点数、故障率 [0069] 二、集群设备管理维护人员用户群指标
[0070] 1.故障报警及定位 [0071] a.实时故障节点数、故障率
[0072] b. -周(月、年)内,每天故障节点记录、故障率【列图、表】
[0073] c. 一周(月、年)内,平均每节点故障次数,每节点故障率(统计易故障节点) [0074] d.故障节点实时定位 [0075] e.故障节点实时报警
[0076] f.故障、失效节点失效类型分级:可联接、不可联接、掉电等等
[0077] g.对可联接故障准确定位故障设备:故障盘位置、掉内存(位置)等等
[0078] 2.设备运行状态查看
[0079] a.集群整体实时CPU利用率、集中存储10带宽
[0080] b. -周(月、年)内,每天集群整体平均CPU利用率、平均集中存储10带宽
[0081] C. 一周(月、年)内,集群整体平均CPU利用率、平均集中存储10带宽
[0082] d.可实时查看每节点运行状态:CPU、内存、本地磁盘、网络等等指标
[0083] e.可历史查询一年内所有节点每天运行姿态
[0084] f.资源瓶颈分析(CPU、存储、内存、网络【区分存储,数据交换】)
[0085] 3.计费功能
[0086] a.用户机时统计
[0087] 三、任务用户群指标
[0088] 1.当前任务信息
[0089] a.当前任务使用的节点数、核数、占用的内存容量等等
[0090] b.可查看当前任务所使用的节点数的状态信息:CPU、内存、本地磁盘、网络等等
[0091] c.当前排队的任务数
[0092] d.当前任务排队时间
[0093] 2.历史任务统计
[0094] a.该用户历史任务运行时间
[0095] b.该用户历史平均任务运行时间 [0096] c.该用户完成(失效)的历史任务数 [0097] d.任务成功率(成功任务数/失效任务数)
[0098] e.该用户历史任务使用的节点数、核数
[0099] f.该用户平均历史任务使用的节点数、核数 [0100] g.历史任务平均排队时间
[0101] 四、应用软件研发人员用户群指标
[0102] 1.程序(模块)使用信息统计
[0103] a. -周(月、年)内,每天处理(失效)的模块总数
[0104] b. -周(月、年)内,模块失效率
[0105] c. -周(月、年)内,模块使用热度统计、排名,及每个模块的使用次数占比
[0106] d. -周(月、年)内,失效模块热度统计、排名,及每个失效模块的失效次数占比
[0107] 2.性能追踪指标
[0108] a.所有应用层面的服务(数据库、文件系统、作业调度、中间加速层、并行框架等) 的负载情况
[0109] b.微架构级的信息:cache hit/miss 率、TLB
[0110] C.操作系统级的信息:进程数、进程切换、堆栈、堆内存分配情况等等。
[0111] 3.用户使用习惯的统计
[0112] a.交互应用的访问数据的延迟、驻留时间、I/O访问模式等
[0113] 最后,将监控设备已经按上述内容挖掘的统计分析信息,按指定的用户层分别展 示到用户端设备。
[0114] 本发明的实施方式中的数据挖掘是按用户的类型来区分的。发明中已列出的挖掘 项是充分分析了相关类型用户的具体需求和关注点后总结的。而这类指标在通常的监控里 是没有的,需要人为的将数据导出分析,而本发明提出的实施方式是智能化、自动完成的。 此外,本发明提出的实施方式还设计有预留的由用户自定义的数据挖掘接口,可执行用户 定义的数据挖掘程序。
[0115] 3.故障定位和报警
[0116] 通过上述数据挖掘分析,能够获得计算节点的设备当前工作性能指标,根据所述 工作性能指标可以分析设备是否发生故障以及发生故障的原因。一方面能够将错误信息通 过用户端设备的智能展示模块展示给特定的用户,另一方面,可以在用户客端设备安装故 障报警模块,例如安装一定的音响设备、灯光设备等,以在设备失效时发出警报信息,从而 提醒维护人员快速关注故障设备,快速完成设备故障排除。
[0117] 设备或应用软件的故障异常情况能够根据统计的性能数据指标来反映。为了简单 易用本发明是通过分析性能数据指标的异常来定位故障的,特别是一些性能方面的故障, 是无法通过惯常的方法排除的。比如,集群的散热不好,可能会导致处理器的降频运行,这 个时候按正常的故障监控手段是不会报警的,但采用本发明提出的方法,由于收集有处理 器微架构数据指标,可以实时的监控处理器完成的浮点运行速度、以及完成每条指令所需 的时钟数CPI,所以当在被监控节点重负载时而这两项指标在一个较长的时间内持续低于 预设的阈值,则由监控设备判断出故障发生并智能报警,同时也就定位了故障发生的原因, 即处理器非正常降频。
[0118] 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明的权利要求的保护范围。
【权利要求】
1. 一种智能监控大规模数据中心集群计算节点的系统,包括安装在数据中心集群计算 节点上的监控节点、与各个监控节点通信的监控设备、以及用户终端设备,其特征在于: 所述监控节点,用于通过获得计算节点的硬件控制寄存器的控制权,采集所述计算节 点的硬件微架构数据指标,通过获得操作系统内核的控制权,获得与所述计算节点上运行 的应用程序的进程相关的数据指标,并将所述数据指标发送到监控设备; 所述监控设备,用于接收所述数据指标,基于所述数据指标执行大数据分析,并将所述 分析的结果发送到用户终端设备; 所述用户终端设备,用于接收所述结果并显示给用户。
2. 如权利要求1所述的系统,其特征在于,所述分析包括:根据所述数据指标定位发生 故障的计算节点,以及确定故障原因。
3. 如权利要求1或2所述的系统,其特征在于:所述硬件微架构数据指标包括CPU的 实时浮点运行速度、流SMD指令扩展集SSE单元利用率、高级向量扩展集AVX单元利用率、 向量指令向量化率、完成每条指令所需的时钟数CPI、最后一级缓存LLC命中率、内存带宽、 PCI快速总线接口 PCI-E设备带宽、缓存命中/未命中率中的一种或多种的组合;所述与所 述计算节点上运行的应用程序的进程相关的数据指标包括进程切换次数、堆栈信息、堆内 存分配情况中的一种或多种的组合。
4. 如权利要求3所述的系统,其特征在于:所述数据指标为CPU的实时浮点运行速度 和/或完成每条指令所需的时钟数CPI,所述分析包括:当所述数据指标在预设时间段内持 续低于预设的阈值,则判断处理器发生故障,并确定故障的原因为处理器异常降频。
5. 如权利要求1所述的系统,其特征在于:所述监控节点还采集由操作系统提供的CPU 利用率、内存利用率、本地磁盘10数据和/或以太网吞吐量。
6. 如权利要求1所述的系统,其特征在于:其中所述计算节点的硬件控制寄存器为所 述计算节点的处理器的性能监控单元PMU中的MSR控制寄存器。
7. -种智能监控大规模数据中心集群计算节点的方法,其特征在于: 启动安装在计算节点中的监控节点; 所述监控节点通过获得计算节点的硬件控制寄存器的控制权,采集所述计算节点的硬 件微架构数据指标,通过获得操作系统内核的控制权,获得与所述计算节点上运行的应用 程序的进程相关的数据指标,并将所述数据指标发送到监控设备; 所述监控设备接收所述数据指标,基于所述数据指标执行大数据分析,并将所述分析 的结果发送到用户终端设备; 所述用户终端设备接收所述结果并显示给用户。
8. 如权利要求7所述的方法,其特征在于,所述分析包括:根据所述数据指标定位发生 故障的计算节点,以及确定故障原因。
9. 如权利要求7或8所述的方法,其特征在于:所述硬件微架构数据指标包括CPU的 实时浮点运行速度、流SMD指令扩展集SSE单元利用率、高级向量扩展集AVX单元利用率、 向量指令向量化率、完成每条指令所需的时钟数CPI、最后一级缓存LLC命中率、内存带宽、 PCI快速总线接口 PCI-E设备带宽、缓存命中/未命中率中的一种或多种的组合;所述与所 述计算节点上运行的应用程序的进程相关的数据指标包括进程切换次数、堆栈信息、堆内 存分配情况中的一种或多种的组合。
10. 如权利要求9所述的系统,其特征在于:所述数据指标为CPU的实时浮点运行速度 和/或完成每条指令所需的时钟数CPI,所述分析包括:当所述数据指标在预设时间段内持 续低于预设的阈值,则判断处理器发生故障,并确定故障的原因为处理器异常降频。
11. 如权利要求10所述的方法,其特征在于:所述监控节点还采集由操作系统提供的 (PU利用率、内存利用率、本地磁盘10数据和/或以太网吞吐量。
12. 如权利要求11所述的方法,其特征在于:其中所述计算节点的硬件控制寄存器为 所述计算节点的处理器的性能监控单元PMU中的MSR控制寄存器。
【文档编号】G06F11/30GK104156296SQ201410377856
【公开日】2014年11月19日 申请日期:2014年8月1日 优先权日:2014年8月1日
【发明者】刘羽, 吕文静, 金莲, 陈博文, 于涛 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1