一种全面高效的HPCS监控体系.doc

上传人:吴起龙 文档编号:1591953 上传时间:2018-12-26 格式:DOC 页数:15 大小:23.63KB
返回 下载 相关 举报
一种全面高效的HPCS监控体系.doc_第1页
第1页 / 共15页
一种全面高效的HPCS监控体系.doc_第2页
第2页 / 共15页
一种全面高效的HPCS监控体系.doc_第3页
第3页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一种全面高效的HPCS监控体系.doc》由会员分享,可在线阅读,更多相关《一种全面高效的HPCS监控体系.doc(15页珍藏版)》请在三一文库上搜索。

1、一种全面高效的监控体系0引言 关于HPCS(High Performance Computing Systems)的监控,国内外有许多研究机构和商业团体提出了许多有效的监控实现技术,如N层监控树、RRD(Round Robin Database)等;产生了不少优秀的监控软件,如早期的CARD1,Java和C/S技术实现的Parmon2,树型结构能够监控集群簇的Supermon3,世界范围内广泛应用的分布式监控软件Ganglia4,5,国内的Ganglia+6,7(在Ganglia的基础上达到了更高的可靠性和安全性),以及著名商业化异种集群分布式监控软件BigBrother,Berkeley大学

2、系统管理工具Now,使用接近/proc实现的Dproc,同批处理系统紧密结合的Clumon(+Open PBS)8、NWPerf9、PerfMiner(+Easy)10,其他如MonALISA、IMPuLSE、HiFi、Astrolabe、Lemon等。 基于上述监控软件的分析发现,大部分工具只具备单一的功能,未能把多个监控领域综合起来实现。如系统监控软件Swatch只探测可能发生的系统事件,通知管理员以及完成部分管理功能如重新启动进程或者加载文件系统等;常见的Ganglia等均属于性能监控范畴;应用程序监控只有少量研究简单涉及(如Clumon),通常还局限于特定的批处理系统;进程监控较少体现

3、在实际工具中,却非常必要;国内的研究更是处于起步阶段,还有很多工作有待于进一步开展。 为此,需要建立一种集性能、应用程序、系统、进程监控于一体的全面的监控体系,它不仅应该诊断硬件、内核、服务等系统不同层次的状态(包括:各节点的CPU 负载信息, CPU使用率; 各节点内存使用率,Cache、Buffer、Swap信息等;各节点的磁盘输入/输出状况,即硬盘用量和空间; 网络状况, 负载和利用率等,用于系统管理员查看和分析,从而调整优化系统的性能和资源分配(即性能监控),还应该能收集到应用程序、作业等运行信息,利于查看批处理系统实际应用性能、工作负载和吞吐量等(即应用程序监控);同时,也可以相当于

4、一个虚拟的系统操作员,监视一切体现潜在的系统故障的事件,且以邮件或者信息的方式通知系统管理员,并自动采取一些应对管理措施,保证其计算环境的可靠性(即系统监控);且能扫描运行在系统平台上的进程,对外来的可疑进程或占有系统资源较多的“霸道”进程等有一定的判别能力,如硬盘利用率超过95%,CPU平均负载过高,某些重要进程僵死,一些特殊的IP地址连接不上,以及某些服务关闭等,然后由管理员采取一定措施(如清除一些僵死的进程,重启或者扼杀一些混乱的进程等)以保障系统的安全(即进程监控)。 但是,因为将几方面的监控整合于一体,系统占用的计算、存储等资源也必然随之增加。系统监控可能一个小时运行几次,性能消耗还

5、不算太大,性能监控一分钟运行多次,将要占用惊人的系统资源,故其本身更要采用高性能的设计。因此,也要改进现有监控软件实现的模式,利用信息流水、过滤、双重传输等技术等加快数据收集的速度,减少传输数据量,提高数据表示、传送的效率,减轻监控系统本身的资源损耗,从而获得更高的监控性能。 1监控系统特性 对于运行于HPC以及HPCS上的监控系统而言,必须具备以下八个特性: (1)全面性主要体现在两个方面,一是监控对象的全面性,即应该能够监控到HPCS的各个部分,如上面提到的系统、性能、应用程序和进程一体化;二是监控信息的全面性,即对每个部分的监控信息都要全面。 (2)低延迟即实时性,监控数据尽可能反映系统

6、当前状态和短时间内的变化。 (3)可扩展监控消耗的CPU等系统资源数量和节点数之间要大大低于线性关系。 (4)健壮性在不同的节点或网络故障的情况下,监控仍能正常进行,且尽可能准确。 (5)可延伸系统能以便利的方式,如用户模块化添加对新节点或新部件的监控。 (6)易管理监控所花费的成本与HPCS的规模也要大大低于线性关系,尽可能避免人工安装配置,用简洁清晰的图形Web界面表现系统的状态,支持本地和远程管理。 (7)可移植HPCS软/硬件仍有很大的变化空间,监控系统要能适应不同的处理器体系机构,也可移植在不同操作系统上。 (8)低消耗监控系统所引起的资源需求如CPU、内存、I/O,以及网络负载均应

7、该比较低,以便尽可能减少对被监控系统产生的影响。这点对HPC来说尤其重要。 本文提出的Clumon+监控体系集性能、应用程序、系统、进程监控于一体,可很好地满足全面性,但其余七个特性还要靠改进监控实现技术以及提高系统本身的性能和效率来达到。 2现有的监控技术 21体系结构 现有的监控体系结构主要有两种:集中式监控和分布式监控。集中式监控需要一台专用的监控主机,中央监控节点的负载高、延迟大、效率低,且无容错性,故一般采用分布式监控,把监控任务分布到各个节点机上,从而增强可靠性和提高效率。 分布式监控又分单层和N层的树型结构。前者比较简单,多个MA(Monitoring Agent)运行于各个节点

8、上收集各部件状态,唯一的SMA(System Management Agent)只在某特定的监控节点上,汇聚来自所有MA的信息。容易崩溃,且不具备可扩展能力,无法对多个HPCS或者网格进行监控。增加系统可扩展性的一个最直接的办法就是加深监控树的层次(图1)。 多个SMA分布在不同的层次上,功能也多样化:首先是通过一系列API连接Client;其次,作为一个信息路由器均匀分担监控负载。Client可以是上层的HPCS管理工具,或者设计成Web方式的客户端。监控数据要依权限查看,只有根Client才可以看到所有HPCS的统一视图,其余层次只可以访问到有限的信息。Ganglia、Supermon,以

9、及本文的Clumon+等都是N层监控树的结构。 22数据收集 遵循的准则是一次监控数据的采集在计算节点上的资源占有率达到最小,可以基于Pull或Push协议。Pull协议如轮流检测由接收端向数据源发出请求,数据以一次检测为间隔进行有规则的更换,总在需要时到达,更新和网络负载之间有一个平衡;但请求信息及数据变化缓慢或没有规律时空的轮询会浪费网络带宽;而Push协议不限时间,有超出一定门限的显著事件发生,数据源主动向监控模块发送数据,同时允许接收端有选择地接收,数据调度比较理想,不需要请求数据包,降低了消耗的网络带宽。 收集工具也各有其优缺点:系统调用,使用特殊的系统命令,如ps、top用于进程,

10、netstat、ping用于网络,iostat、vmstat用于外设,Ganglia便是采用这样的方法;标准或非标准工具,如SNMP、rstatd、sysctl, SNMP存在严重的安全隐患,rstatd提供的信息有限,sysctl建立了一个登录条目,一次便可取得所有需求信息,大大提高了速度,但效率较低;直接读取内核模块数据,但主内核改变时,代码必须保持一致;直接读取分析/proc文件,快速高效,存在的问题较少,比较常用,但必须保持代码分析与/proc 文件改变同步;混合方式,用内核模块收集数据,用/proc作为接口。 23数据合并 多源异种数据需要合并后传往高层的SMA。合并有两种方式,一是

11、合并不同节点的同种数据;二是合并不同种类的数据。合并可以发生在节点、监控主机或者两者上,一般只采用在节点上的合并。因为节点是数据的收集与提供者,多个同时的数据请求不会引起多于一次的系统调用,而是将第一次请求获得的数据缓存,并提供给第二次请求调用。这种方法减少了操作系统的负担,加快了监控系统的响应,而且多个数据源的数据可以以相互独立的收集速率结合,从而减少静态和低频数据的传输,提高传输效率。 24数据传输 将监控信息进行有效编码,采用高效的传输协议送往上层SMA。有二进制、XML、SExpressions、文本几种数据格式,各种格式各有利弊。二进制容易压缩,但可移植性、可扩展性和可组合性都不太好

12、;XML弥补了上述不足,但解析复杂,数据规模会急剧膨胀,且依赖于操作系统;Supermon采用的SExpressions也可以表达树型结构的数据,有自包含的数据描述,且不需要RPC编译器和XDR工具,比较优异;但文本形式更适合于/proc,避免了传输前向二进制转换,且平台独立、易读,也能有效压缩。 数据协议要具备两个特征,即可扩展性和可组合性。可扩展性是指数据结构上不用改变传输层程序而加入新的元素;可组合性是指来自不同数据源的监控数据可以组成单一的整体。Ganglia、Hawkeye使用的XML相关协议,标准但比较复杂;PerfMC、Supermon使用的SNMP,简单但会引起额外的网络负担;

13、也可以使用其他的非标准协议如Parmon采用的简单传输机制,传输层使用TCP /IP套接字流,而应用层使用信息字符流,客户端用消息交换方式从服务器获取监控数据,服务器答复一系列的字符流。 25超时设定和心跳信息 如果超时设定的节点崩溃,MA利用心跳信息来设置时间界限,每一次心跳信息包含一个代表着MA起始的时间戳,任意MA重启,它的时间戳改变很快被其他MA发现;如果MA在时间界限内没有应答就会被认为是宕掉。这样,重启或者是新添加的主机,数据的发布便不用遵守前面超时设定的限制。只有在MA超过10 min没有响应才启用重新设置机制,避免集群中所有MA同时重启引起多播风暴。 26数据存储 数据存储有集

14、中式和分布式两种不同的存储策略。集中存储发生在SMA所在的节点,分布式存储是在各SMA、MA所在的本地节点,很好地实现了冗余。但在存储资源非常珍贵的HPCS中,这种冗余并不需要,故一般都采用集中存储。 引入的数据库可以是RRD,以固定的规模和面向时间的方式保存数据,正好符合周期性输出的特点;但精确性不够,不可升级,且操作复杂,依赖于系统平台;关系数据库,如PerfMiner使用的以Postgres为后台的,Lemon使用的标准SQL,多个表联合,通过索引很容易实现高效查询;增加行列很容易插入新数据且不用改变应用程序,有灵活的适应性、较高的可扩展性和精确性,但随着数据量的增长,所占用的存储空间也

15、会无限增大。 27数据显示 数据显示有文本和图形界面两种形式,后者清晰易懂使用得较多。一般是基于Web的访问界面,分成若干个由XML文件经过XSL转换的包含图表和数据的HTML页面,用户可以写一系列XSL转换文档过滤和定制HTML外观。分析显示工具MRTG用于监视网络负载和连接,生成包括PNG格式图片的HTML页面,使用SNMP协议读取,简单且功能强大,但格式固定;RRDtool存储和显示时间序列数据,且以紧密方式压缩,占用的空间不会随时间增长,但实施复杂,数据库不可升级,也不独立于系统平台;JROBIN,Java版本的RRDTool,可移植性强,独立于系统平台,可升级,但与RRDtool一样

16、复杂。 3一种全面的HPCS监控体系 超级计算中心联想深腾6800原有的Ganglia监控系统有诸多优势,如广泛适用于大多数操作系统和CPU体系结构,直观的Web动态访问界面,可以监控多个不同的HPCS,Rocks、OSCAR和Warewulf都可以提供安装。它也有不足之处,如RRD数据库比较复杂,容易造成明显的网络负担;监控不够全面,只能完成CPU、内存、网络等性能状态的描述和刻画,缺少对系统事件的预测和提醒,缺少对应用程序如用户作业、队列信息的监控,也没有进行进程监控来保证HPCS的安全。 为了实现全面高效的监控目标,本文提出了一种基于开源软件Clumon的全面高效的HPCS监控体系Clu

17、mon+。 31Clumon分析 Clumon用自身的Clumond进程调用SGI的Performance Co Pilot(PCP),存储监控数据于SQL数据库中,基于Web的动态方式访问。安装在各个节点的PCP进程追踪特定资源的状态,服务器端Clumond收集来自PCP进程的监控信息并存入RR数据库中,两种进程都从PBS服务器中获取监控数据,并用Web方式表示出来。Clumon比Ganglia系统有所改进,它不仅可以监控到HPCS的性能领域,还可以了解用户作业的详细信息,并以图表方式显示系统资源使用和客户端作业调度情况。它也有一定的不足:一是监控领域不全面,虽然比其他软件多了批处理系统作业

18、信息等应用程序监控功能,但没有覆盖到系统、进程等领域的监控;二是用户程序监控的局限性,因其最初设计便是与OpenPBS紧密结合的,所以不支持其他的JMS。 32Clumon+的体系结构 Clumon+的设计便要针对以上两点不足进行合理的改进,形成一种全面的监控机制,其体系结构如图2所示。 321Checksys实现系统监控 Checksys是NCSA编写的一个Perl脚本,采用模块化设计,面向整个HPCS的主脚本调用和设置运行在每个主机上的子程序;主脚本从Cron程序中每十分钟运行一次,多数子程序也是,少数子程序一个小时或者一天运行一次,具体由主程序的配置文件指定。主控程序在给定的主机上运行C

19、ron任务,读取所示节点的配置文件,了解哪个子程序将要在这个主机上运行。运行指定的子程序的过程中,Checksys主控程序再次访问所在主机的配置文件,取得子程序运行所需的参数,分析和预测将要发生的系统事件。 除了进行事件监控,Checksys也完成部分管理工作。当进程运行失误,或者运行的副本数目与配置文件不符时,负责重启;重新加载本地和远程的文件系统;通过Email通知管理员相关的事件以及要采取的措施;将在系统日志中保留一条消息;提示监视系统通过生成文件或者事件来传送一个特殊的信息。Checksys是一个主动而非被动的监控系统,它持有一些正确的状态,通过替换原有的表示状态完好的标志文件来提示监

20、视器记下警告消息。 322Appmon中间层 增加一个Appmon的中间层代理作为Clumond+与JMS的接口,屏蔽不同的JMS中数据调用接口的差异,使其可以与OpenPBS以外的主流JMS(如LSF)结合,读取作业调度器中系统、用户程序有关的作业信息,并以一个单独的表格形式存入SQL DB中。在Web客户端就可以直接访问数据库中相应表格来向不同层次的用户展现作业信息。对于用户来说,提供有关最新提交的作业性能信息,不改变用户应用环境而以某个确定的方式运行;对于系统管理员和服务支持人员来说,则可以看出哪个用户消耗的计算周期最多,以便于理解系统被不同用户的使用情况,可以集中于解决问题的硬件所在。

21、 323Promon进程监控 进程监控与安全关系反映最明显,入侵者最少需要运行一些进程才可以进入集群节点。一些非预期进程是安全危机的指示。增加Promon进程监控,也是一个安全分析模块,安装在HPCS监控主机上与Clumond通信,分析监控信息,查找安全事件,利于监控的可靠性和执行的便利性,增加了从可信任位置送往网络的数据正确性校验。 Promon进程监控模块从SQL DB中获取进程信息,分析并放回。用户通过中央管理节点基于Web访问进程安全信息。模块化的设计,更容易加入这个功能。可以使用Clumond收集到的性能数据,Promon模块集中于分析和视图工作。有四种进程要提出警告:不该运行的进程

22、、可疑进程、资源超过限制进程、该运行而未运行的进程。 4提高监控系统的效率 功能全面的同时势必也将带来额外的系统负载,因此要设法提高监控系统的运行效率,从而对HPCS平台上的用户作业程序产生尽可能小的影响。为达到这个目标,有两个基本的思想:一是减少在单个主机节点上收集和传送的监控数据量,从而减少占用的计算节点的资源,减轻网络负担;二是增加数据传输时的并行性,使不同主机以及监控节点之间传输间隔达到最小。可以用以下几种措施来实现。 41使用更高效的数据收集算法 例如混和Push/Pull协议,监控进程发送SQL请求给一个设有计数器和时间间隔限制的中转代理,计数达到要求时,由中转代理来执行这个请求,

23、从而抑制过于频繁的更新请求。计数器设置为1,即为普通的Pull协议;设置为无穷大,即为Push协议。时间间隔限制应答SQL数据请求,从而减少了Push协议中传送的非接收端感兴趣的数据信息,而多播协议中只能选择多播的地址,而不能选择特定数据源的数据包。 也可以使用信息流水技术,增加数据收集和传输时的并行性,缩短系统延迟。所有的请求信息和监控信息都可以沿着系统结构方向以流水线来传送,即信息处理和信息传送时间以及不同段之间的传送时间的重叠,如限制系统必须在1min间隔内用06s完成数据的收集和传输,以减少监控程序对计算资源的消耗。 42过滤技术 依据用户策略选择性提取、合并和传输监控数据,如不传送静

24、态信息或者只传送某些频率的动态信息;设定数据粒度,如限制XML数据的递归层次,或限制各种数据源数据的收集频率;使用数据掩码Mask#nameU用于运行时间等没有范围限制的数据,反之,如内存使用率类的数据用Mask#nameBlowerboundupperbound,以便屏蔽用户不想知道的信息,只传送用户感兴趣的监控数据,从而节省了数据处理的时间和资源,以及网络带宽。 43双重传输模式 使用同步和异步双重传输模式,使主机节点上数据收集与汇集及送往监控服务器的间隔最小。通常是默认的异步模式,监控信息沿着监控树从MA向SMA传送,传送频率取决于用户的需要,上层应用程序使用的是缓存数据,因此监控信息只

25、是对系统状态在某个时间点的估计而不是精确反映。异步模式的目的正是支持系统监控;相反,同步模式是为那些对监控数据精确度和更新速率要求都比较高的系统而设计的,同步模式下,缓存数据采用会话迂回策略,数据请求被送往MA,然后MA响应请求,并把监控数据传往发出请求的SMA。该模式的目的是为了支持对系统信息正确性要求比较高的批调度系统。 44可插入模块技术 即插即用(Plugandplay)的监控模块可以实时加入,允许用户根据自己的需求编写遵循一定接口规范的脚本来监控新的资源的信息,或者提供新的性能指标。监控数据和控制信息经过Publish/Subscribe通路传往其他节点,允许系统本身和应用程序根据当前需要,动态定制、分析和交换数据;本地或远程监控进程,可以动态部署监控函数,通过过滤器指定复杂的数据定制准则。 5结束语 开展HPCS监控技术的研究是至关重要的,通过分析监控数据可以找出其瓶颈,及时发现并排除故障,为系统性能优化提供可靠的依据。本文提出了这种集系统、性能、用户程序、进程监控于一体的全面高效的监控体系,并采用过滤、信息流水等技术解决了监控本身的负载问题。但这种方法采用的是单层监控结构,无法像N层监控树那样可以同时监控多个HPCS以及网格等。为此,在以后的工作中,要改变增加监控层次,设计成类似Ganglia的N层监控树的形式,从而用于异种HPCS簇的监控。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1