(计算机应用技术专业论文)linux集群可视化监测工具的研究与实现技术.pdf_第1页
(计算机应用技术专业论文)linux集群可视化监测工具的研究与实现技术.pdf_第2页
(计算机应用技术专业论文)linux集群可视化监测工具的研究与实现技术.pdf_第3页
(计算机应用技术专业论文)linux集群可视化监测工具的研究与实现技术.pdf_第4页
(计算机应用技术专业论文)linux集群可视化监测工具的研究与实现技术.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机应用技术专业论文)linux集群可视化监测工具的研究与实现技术.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 在现代科学技术的许多领域中,存在着大量必须用高性能并行处理机才能够 解决的挑战性课题。p c 集群系统以其硬件资源丰富、成本较低、可扩展性好、软 件资源可继承且构造相对简单等特点,成为大多数普通用户进行并行处理工作的 重要选择。随着p c 集群系统广泛地应用,系统中软硬件不断地增加,当系统达到 一定规模时,对其综合性能要求就会显得越来越重要。此外,并行程序的设计要 远比串行程序设计复杂,涉及到对硬件的理解、流水线、并行任务的分解、进程 的划分以及进程之间的通讯等问题。为了提高集群的性能和用户应用程序的运行 效率,对运行中的集群系统实旌有效地监测是十分必要的。 本文通过对现有监测技术的分析,以i m - s e n s o r s 、p r o c 文件系统、m p e 为基 础、结合m y s q l 数据库和k y l i x ,在采用i n f i n i b a n d 第三代技术的2 0 p c 集群系 统上实现了一个实用的可视化并行程序监测工具,具有以图形方式实时显示硬件 信息和系统节点负载信息以及根据并行程序执行过程中产生的l o g 文件以图形化 方式重现程序执行过程的功能。该工具基于c l i e n t s e r v e r 模式,把被监测节点作为 服务端( s e r v e r ) ,丽把监测节点作为客户端( c l i e n t ) 。服务器端做为一个后台守 护进程运行,在节点机开机的时候自动运行,常驻后台,收集节点的负载信息, 定时将信息发送给主控机,由主控机将这些信息进行处理并以图形方式显示给用 户。 监测系统采用对系统性能影响较大的c p u 温度、系统风扇转速、c p u 利用率、 内存利用率、不同时间间隔计算的系统平均负载和网络传输率等数据作为监测的 参数。 使用p r o e 系统获取节点负载信息,其优点是:能够以极小的开销获取比较全 面的信息,其中包括处理机、存储空闻、i o 、网络、文件、进程等,并且全部是 最新的实时信息。同时系统中任何时刻正在运行的每个用户级进程在p r o c 下都有 一个相应目录,其名称为进程号,其中存放着该进程的相关信息。用户通过文件 名查找所对应的进程i d ,定期访i h p r o c 中的相关文件以得到该进程的系统利用 情况。 n l i n u x 操作系统内核高于2 2 x 的版本大都支持l m s e n s o r s ,它可以与主板上 的传感器协同工作,获得节点的c p u 温度、c p u 风扇转速、主板温度以及一些系 统电压等相关的硬件参数,这些数据可为我们了解集群的工作状态提供依据。 m p e 为m p i 环境提供了重要的性能分析途径。通过对事件的记录,就可以 实现对并行程序流程的跟踪。为了有效地使用m p e 提供的程序性能分析工具, 必须事先在并行程序中定义要纪录的事件,然后在事件发生的前后插入m p e 的 事件纪录语句,这样在程序运行完成后,便可生成相应的l o g 文件。 在大规模并行计算中,计算的时间比较长,所以并行监测程序会监测到大量 的数据,需要把这些数据保存到数据库中。由于m y s q l 具有资源消耗低、速度 快和支持网络存贮等特点,加之它还提供有用c 语言编写的客户机库,我们可以 用它编写访问m y s q l 的客户机程序。同时由于m y s q l 在主控节点上安装m y s q l 的服务器端,计算节点上安装m y s q l 的客户端;这样计算节点就可以通过本地 客户端把数据保存到服务器端的数据库上。 利用l i n u x 平台的可视化快速开发工具k y l i x 实现监测系统的可视化界面。 在获取数据之后,可以通过两种方式将数据可视化:在应用程序运行的同时,实 时地在屏幕上以图形方式直观地显示各节点机的负载信息以及当前状态:在程序 运行结束之后,将程序的运行数据保存在l o g 文件中,让集群服务方或用户方能 够通过对所记载的图形化数据的分析,对进一步提高并行应用程序的效率提供科 学的依据。 最后对i n f i n i b a n di i ip c 集群系统的监测系统进行了测试,同时对该系统对 集群整体性能的影响也进行了比较。 关键字:集群集群性能p r o c 文件系统l ms e n s o r s m p e m y s q l 数据库 k y l i x i a b s t r a c t a b s t r a c t t h ec h a l l e n g eo fm a s s i v ec o m p u t a t i o np r o b l e mi nm a n ym e d e mf i e l d sn e e dp a r a l l e l c o m p u t e r so fh i g hp e r f o r m a n c e ,a n dt h ep cc l u s t e r , f o rt h ea d v a n t a g eo fh i g h p e r f o r m a n c e p r i c er a t i o e x t e n s i b i l i t y , s o f t w a r ei n h e r i t a b l ea n de a s yb u i l t , i sw i d e l y u s e d s ot h ep e r f o r m a n c eo fp cc l u s t e ri sv e r yi m p o r t a n tf o rt h eu s e lw i t ht h es i z eo f c l u s t e rb e c o m i n gb i g g e ra n db i g g e r , m o r ea n dm o r eh a r d w a r ea n ds o f t w a r ea r e i n v o l v e d ,a l le f f e c t i v ec l u s t e rm o n i t o rs y s t e mi sv e r yn e c e s s a r y i nm yp a p e r , b ys t u d y i n gt h ee x i s t e n tc l u s t e rm o n i t o rs y s t e m s ,a n a l y z i n gt h ec o m m o n a d v a n t a g ea n dd i s a d v a n t a g e a b e u tt h e m b a s i n go nl ms e n s o r sf o rh a r d w a r e i n f o r m a t i o n p r o cf i l es y s t e mf o rn o d el o a di n f o r m a t i o na n d 【p ef o rl o gf i l e r e c o r d i n gt h ep r o g r a mr u n n i n g ,w ed e v e l o pav i s u a lt o o lf o rp a r a l l e lc o m p u t i n g m o n i t o ra n de v a l u a t i o nt o o l so ni n f i n i b a n d3 og e n e r a t i o n2 0 p c sc l u s t e r , w h i c hi s c a p a b l eo fs h o w i n gt h eh a r d w a r ei n f o r m a f i o n ,n o d el o a di n f o r m a t i o na l la tt h es a l n e t i m ea n dr e c u r r i n gt h el o gf i l ea f t e rt h er u n n i n go fp a r a l l e lp r o g r a m t l i ss y s t e mi so f g r e a tv a l u ef o rt h ei n c r e a s e m e n to fc l u s t e rp e r f o r m a n c e t h ei m p r o v e m e n to fp a r a l l e l p r o g r a me f f e c t i v ea n de a s yu s ef o rt h e u s e r a sw ea l lk n o w nt h a ts o m ef a c t o r ss u c ha st h et e m p e r a t u r eo fc p u ,t h es p e e do f s y s t e mf a n t h eu s a g eo fc p ua n dm e m o r y , t h ea v e r a g el o a do fs y s t e ma n dt h e t r a n s p o r t a t i o no f n e t w o r kp l a ya ni m p o r t a n tr o l ef o rc l u s t e rs y s t e mp e r f o r m a n c e ,s ow e c h o o s et h e ma s t h em a i np a r a m e t e r w eu s e p r o cf i l es y s t e mt og e tn o d e si n f o r m a t i o n ,f o ri t sa d v a n t a g eo fg e t t i n gu p d a t e i n f o r m a t i o ni n c l u d i n gc p u ,m e m o r y , i o ,n e t w o r k ,e t cw i t hl i t t l ec o s t m e a n w h i l ea l i t h eu s e rp r o c e d u r e si n f o r m a t i o ni n d i c a t e db yt h ep i dc a ng e tf r o mt h e r e 1 m - s e n s o rc a l l w o r kw i t ht h es e n s o r so nt h em a i nb o a r d ,p r o v i d i n gi n f o r m a t i o no fc p u t e m p e r a t u r e , c p uf a ns p e e d a n do t h e rh a r d w a r ep a r a m e t e r m p ei st h ee x t e n df o rm p ia sa p e r f o i t n a n c es c a l e f i r s tw ed e f i n es o m ee v e n t sw ea l ei n t e r e s t e d ,t h e nw ei n s e r tm p e s e n t e n c ei n t ot h em p ip a r a l l e ip r o g r a m a f t e rr u n n i n gt h em p ip r o g r a m ,w ew i l lg e ta l o gf i l e b yv i e w i n gt h el o gf i l e ,w ec a nl e a r nh o wm u c ht i m eh a v es p e n to nd i f f e r e n t e v e n s w ec h o o s et h em y s q la st h ed a t a b a s et os t o r ea l lt h ed a t ew eg e tf r o mt h e n o d e s a n dt h ek y l i xt of o r mt h eg u i a f t e ra l lt h a tw o r k ,w em a k eat e s to nt h ei n f m i b a n d3 mg e n e r a t i o nc l u s t e ra n dg e t s o m eu s e f o li n f o r m a t i o n k e y w o r d s :c l u s t e rc l u s t e rp e r f o r m a n c e p r o cf i l es y s t e ml m _ s e n s o r s m p em y s q l k y l i x 郑重声明 本人的学位论文是在导师指导下独立撰写并完成的,学位论文没有剽窃、 抄袭等违反学术道德、学术规范的侵权行为,否则,本人愿意承担由此产生的 一切法律责任和法律后果,特此郑重声明。 学位论文作者c 签孙徽 矽衫年歹月形日 引言 引言 集群( c l u s t e r ) 是指运用网络通信技术连接起来的计算机硬件和软件的集合, 是并行体系结构的一种具体实现模式,其呈现给用户的是单一系统映像( s s t ) 。作 为一种低成本的并行计算机系统,p c 集群以其投资风险小、扩展性好、软件资源 可继承且构造简单等特点,成为国内广大普通用户从事并行处理工作的选择之一。 p c 集群系统的成本固然较低,但是与其相配的高可用性的系统监测工具却也 往往比较缺乏。为了提高集群的性能和用户应用程序的运行效率,对运行中的集 群系统实施有效地监测和控制是十分必要的。在这一方面,国内外研发了不少各 式各样的监测系统。从整体上看,这些监测工具大多存在功能单一、性能不够稳 定或用户界面单一等问题。在国内外市场上,i b m 、曙光等公司推出的大型集群 系统虽然也都配备了比较完善的监测系统,但通常其绑定价格都比较高,一般的 普通并行用户难以承受,并且这些工具也多是为专门的硬件系统开发,通用性偏 低。 本文通过对现有监测技术的分析,在采用i n i i n i b a n d 第三代技术的2 0 p c 集 群系统上实现了一个实用型的可视化并行程序监测工具,具有以图形方式实时显 示硬件信息和系统节点负载信息以及根据并行程序执行过程中产生的l o g 文件以 图形化方式重现程序执行过程的功能,该工具的实现对提高p c 集群系统的性能、 改进低端用户的并行应用程序效率以及方便用户使用等方面具有重要意义。 绪论 1 1 背景 第一章绪论 随着社会与科学的飞速发展,许多复杂的高性能科学计算、巨量数据处理、 超大型工程设计等课题都急迫地摆在了人们面前,实现和完成这些工作无一不对 计算机的运算速度、存储容量及数据传输速度等提出了几乎无止境的要求。传统 的单处理器计算机显然己远远不能胜任这些工作。 在2 0 世纪8 0 年代,人们认为计算机性能的提高主要可由生产出更快更有 效的处理器来实现。但很快这种观点就受到了并行处理概念的挑战。并行计算的 根本意义是将多台计算机连接起来,共同解决一些计算问题。从2 0 世纪9 0 年代 以来,由专用而昂贵的巨型超级并行计算机向工作站集群网络转换的趋势越来越 强。高性能工作站和网络部件的商品化成为促成这种转换的主力因素。现代高科 技的发展使基于网络技术的集群系统( 由p c 机或工作站组成) 成为并行处理的 理想工具,并导致了低价商品化超级计算机的出现。 对于利用并行处理来为大规模和具有高度挑战性的应用提供高性能计算能 力,人们已经进行了广泛的研究。并行计算的发展正在从传统的专用超级计算平 台转到具有高性价比的集群系统。这种趋势有许多优势,可以按照给定的任务 建造平台,适应较大型的应用程序和工作负载。 随着集群系统的广泛应用,因系统中软硬件资源也在不断地增加,因此系统 失效的概率也势必逐渐增大。当集群的规模达到成百上千个节点时,系统发生错 误将会给用户造成巨大的损失。此外,由于集群系统是由多个相互独立的子系统 组成,当系统中各节点处理能力存在差异时,如何处理负载平衡问题也就显得愈 来愈重要“1 。同时,由于并行程序的设计要远比串行程序设计复杂,涉及到对硬件 的理解、流水线、并行任务的分解、进程的划分以及进程之间的通讯等问题,所 以对一种适用且高效的调度与监测技术需求就显得愈发重要“。 当前利用集群系统进行并行计算的用户,往往都是先人工通过k v m ( k e y b o a r dv i d e om o u s e ) 依次切换节点机来检查各个节点的状态,然后再将数 据分发向各个节点以进行计算。很多高性能计算程序的运行时间往往很长,例如 大规模矩阵运算,动辄需要计算十几天,甚至更长时间,因此在计算过程中难免 会出现节点故障或者应用程序中断的现象。若这时用户仍通过命令行的方式来确 定节点状态和确定应用进程状态,当节点数较大时,要检查所有节点的进程状态 就必须依次登录到每一个节点上,这是非常不方便且是效率低下的! 基于以上考虑,本文构造了个界面友好,功能比较完备的l i n u x 集群系统并 行应用监测系统( c p m ) 。该系统可以将集群中各个节点的状态与并行程序的执行状 态实时的、准确的、清晰的呈现给客户,并且提供了并行应用程序的接口,可以 将并行程序的执行、中止、重发等功能在可视化界面上给予实现。该工具的实现 对提高p c 集群系统的性能、改进低端用户的并行应用程序效率以及方便用户使用 等方面具有重要意义。 1 2 集群系统( c l u s t e r ) c l u s t e r 是利用高速通用网络将一组高性能计算机,按照某种结构连接在 一起,在并行程序设计以及可视他人机交互集成开发环境支持下,统一调度,协 调处理,实现高效并行处理的系统。从结构和节点间的通信方式来看,它属于分 布式存储系统,主要利用消息传递方式实现各个主机之间的通信,由建立在一般 操作系统之上的并行编程环境完成系统的资源管理以及相互协作,同时也屏蔽计 算机之间的异构性。对程序员和用户来说,集群系统是一个整体的并行系统。集 群系统中的主机和网络可以是同构的,也可以是异构的。 目前己实现和正在研制中的集群系统大多数采用现有商用计算机和通用 l a n 网络,这样可以尽量利用商用系统的研究成果,减少系统的开发和维护费用。 集群系统有良好的可扩展性和可编程性,具有很好的发展前景。 图i - 1 集群计算机体系结构“1 下面是集群计算机的一些主要的部件: - 多个高性能计算机( p c 、工作站或高性能r i s e 处理器) 。 优秀的操作系统( 分层或基于微内核) 。 高性能网络开关( 如千兆以太网或m y r i n e t ) 。 2 网络接口卡( n i c ) 。 快速通信协议和服务( 如活动消息和快速消息) 。 集群中间件( 单一映像系统s s i 和系统可用性基础) 。 硬件( 如d i g i t a l ( d e c ) 内存通道、硬件d s m 和s m p 技术) 。 操作系统内核或粘合层( 如s o l a r i sm c 和g l u n i x ) 。 应用程序和子系统。 应用程序( 如系统管理工具和电子表格) 。 实时系统( 如软件d s m 和并行文件系统) 。 资源管理和调度软件( l s f ( 负载分配器) 和c o d i n e ( 分布网络计 算环境中的计算) ) 。 并行编程环境和工具( 如并行编译器、p v m ( 并行虚拟机) 和卿i ( 消息传递接 口) 等。 应用程序。 串行。 并行或分布式。 广义的说,并行程序设计环境应包括硬件平台、操作系统和并行程序语言、 并行编程、编译、调试及性能分析工具等。狭义的并行程序设计环境则仅指系统 核心之上的工具软件部分。作为一个并行程序的支撑环境,至少应包括两个方面: 并行语言支持或并行操作库函数支持,一种或多种并行编程模型。在分布式存储 计算机系统中,由于处理机之间没有共享内存支持,因而处理机之间通过消息传 递机制( m e s s a g e p a s s i n g ) 实现数据通信。消息传递成为构造并行程序设计环境 的基础。m p i ( m e s s a g ep a s s i n gi n t e r f a c e ) 和p v m ( p a r a l l e lv i r t u a lm a c h i n e ) 就 是目前应用较多的两种并行环境。 1 3 并行计算机系统性能的评价指标 目前,计算机的性能评测是一个正在研究中的课题,它与计算机的体系结构、 计算机软件和算法构成了计算科学( c o m p u t a t i o n a ls c i e n c e s ) 的四大支柱。并行 计算机系统要比单处理机系统复杂许多,所以为了更好的使用并行计算机,充分 发挥其长处,究竟如何评测并行计算机的性能是非常必要的,例如根据性能评测 可以指导不同的应用问题选择不同类型的并行机,从而避免用户引进和购买并行 机的盲目性;性能钡4 试指标还有助于改进系统结构设计,提高机器的性能,促进 计算机软,硬件设计相结合以及对功能的划分与折衷,优化“结构- 算法- 应用”最 佳组合。 通常用户往往把机器的性能( p e r f o r m a n c e ) 近似看作是机器的速度,即程序 绪论 执行时间的倒数。而程序的执行时间包括:访问磁盘和访问存储器的时间、c p u 运算时间、i o 操作时间以及操作系统的开销时间等“1 。但是在多任务系统中,c p u 在等待1 1 9 操作的同时允许转而去处理另一个任务,这就给性能分析增加了困难。 分析性能的时候,我们有时会使用“c p u 时间”,它仅表示c p u 的工作时间,但 不包括i o 等待时间和运行其它任务的时问。不过,对用户来说,程序执行时间 是程序从提交到结束所花费的全部时间,而不单是c p u 时间。 并行计算机的基本性能参数包括如下内容: ( 1 ) 机器规模:处理器的数目 ( 2 ) 时钟频率:时钟周期的倒数 ( 3 ) 工作负载:计算操作的数目 ( 4 ) 顺序执行时间;程序在单处理机上的运算时问 ( 5 ) 并行执行时间:程序在并行机上的运行时间 ( 6 ) 速度:每秒百万次浮点运算 ( 7 ) 并行加速比:衡量并行机的速度 ( 8 ) 峰值速度:所有处理器峰值速度之和 ( 9 ) 利用率:可达到速度与峰值速度之比 ( 1 0 ) 通信延迟:传送单字的时间 ( 1 1 ) 效率:衡量处理器的利用率 ( 1 2 ) 渐进带宽:传送长消息通信速率 集群的性能可从微观和宏观两个方面进行评价。宏观性能是把被测试系统看 作一个整体,通过比较不同系统上运行同一组程序得到的性能数据来评价系统的 相对性能,如著名的l i n p a c k 测试程序”就是这样。l i n p a c k 是国际上流行的 用于测试高性能计算机系统浮点性能的b e n c h m a r k 。通过对高性能计算机采用高 斯消元法求解一元n 次稠密线性代数方程组的测试,评价高性能计算杌的浮点 性能。 l i n p a c k 衡量计算机性能的一个重要指标就是计算峰值或者浮点计算蜂 值,它是指计算机每秒钟能完成的浮点计算最大次数。包括理论浮点峰值和实测 浮点峰值。理论浮点峰值是指被测计算机理论上能达到的每秒钟浮点运算最大次 数,它主要是由c p u 的主频决定的。 理论浮点峰值科i 主频* c v 删n 期执行浮点运算的次数嚼淘时妇刚数 ( 1 - 1 ) c p u 每个时钟周期执行浮点运算的次数是由处理器中浮点运算单元的个数及每 个浮点运算单元在每个时钟周期能处理几条浮点运算来决定的。 实测浮点峰值是指l i n p a c k 值,也就是说在被测机器上运行l i n p a c k 测 试程序,通过各种调优方法得到的最优的测试结果。 理论浮点峰值和实测浮点峰值这两个值只是作为衡量机器性能的一个指标。 而微观性能即评价系统在某一方面的特定表现:如处理器速度,内存速度、 i o 速度、操作系统、网络性能等。 通常影响用户并行应用程序运行效率的主要因素之表现在执行时间上。执 行时间主要由计算时间、阻塞时间和通信时间组成,如公式r 1 2 ) 所示: 丁。,。= t 。口+ ,6 如。+ 7 。州卅 m ( 1 - 2 ) 其中瓦。受各个节点c p u 速度影响最大,。主要由并行环境的通信性能决定, 而五。是同步开销,因此与并行系统中负载平衡程度有很大关系。由此可以得出 结论,并行计算的性能主要受并行环境的通信性能、各个节点机的计算性能、并 行程序所采用的并行算法等因素的影响。由于集群系统中各个节点的资源配置有 可能不同,而工作负载也不一定相同,因此它们的系统利用情况也是影响性能的 主要因素。并行程序监测器监测的内容应该包括并行程序的运行情况和负载信息 两方面的内容。负载是指某一瞬间分配给某个对象而尚未完成的任务数或资源的 使用率。通常使用以下数据作为描述负载的参数:( 1 ) 运行队列中的任务数,即 节点的负载;( 2 ) 系统调用的速率;( 3 ) c p u 上下文的切换率;( 4 ) c p u 的利用率; ( 5 ) 空闲存储器的比率;( 6 ) 最近t 时刻内的平均负载:( 7 ) 网络通信的平均传输 率“1 。 1 4 并行程序的性能 并行计算机的用户最关心的是应用程序的性能。为了提高应用程序的性能, 应该对影响并行程序性能的因素进行分析。它包括:。1 ( 1 ) 软件并行性 由程序的控制和数据的相关性决定的。软件并行性可以用粒度( g r a n u l a r i t y ) 衡量,它是衡量软件进程( 任务) 所含计算量的长度,可以用程序段中的指令数 目测量。粒度一般用细、中、粗描述,细粒度虽然能够提供较高的并行度,但 与粗粒度计算相比,通信请求与调度开销也就越大。 ( 2 ) 并行算法和并行体系结构的匹配度 通过调整并行算法的各种计算粒度,平衡硬件平台中负载和通信时延的方法, 可以使并行算法结构与并行体系的结构得到最大程度上的匹配,获得在现有硬 件和问题性质规模的客观条件下较高的并行程序性能。因此,一个高效并行程 序的获得是由所求解问题的特点、并行处理系统硬件结构和性能特点及系统软 件性能等诸因素动态作用下的优化组合。 1 5 并行程序的监测 并行程序设计“与普通的串行程序有着很大的不同,它存在着很多新的问题。 一方面,并行程序设计中要考虑资源竞争、时序紊乱和死锬这样类与进程间相 互作用有关的问题,这些问题用静态观察程序状态的方法难以发现,而且这种观 测行为本身会对通讯的时序产生影响,导致超时、错序等新的问题。另一方面, 并行程序中往往存在着不确定性,即程序的执行行为将因为每次执行时各个并行 成分的进度而异。一个经过精心设计且性能良好的并行程序,这种不确定性或许 是可以避免的,但是对于含有错误的程序,这种不确定性的几率就要大很多。不 确定性的因素增加了调试的难度。在一次运彳亍时发生错误,而在另一次运行的时 候以不同的形式表现出来,或是隐匿起来,对于这些问题,传统的调度与监测技 术是难以发现的。 近年来,基于事件模型的监测技术的出现,为解决并行程序监测中出现的上 述问题提供了个可行的途径。事件模型的基本思想是:将程序的执行过程看做是 一个不断产生事件的过程,程序的一次执行产生的事件构成张事件图。对程序 监测的任务就是收集这张事件图,与预期的结果进行比较,看是否一致。 基于事件模型的监测技术常常与可视化技术结合使用。事件之间的关系纷繁 复杂,文字性的描述容易使人感到困惑,利用可视化的手段,不仅可以形象生动 韵标识事件之间的联系,还能直观的表示些复杂的数据结构,如表、树结构等 等,以方便用户的理解。 1 6 当前集群监测系统现状 目前国内外对服务器的监测技术研究和开发的成果很多。对于集群系统的监 测,目前主要采用服务器监测软件的方式来实现。国内外有许多针对集群的监测 系统。 p a t r o o n 1 系统是最早采用c l i e n t s e r v e r 模型开发的服务器监测系统,采用 j a v a 语言开发,保证了可移植性。p a t r o o n 可以对集群中的节点进行分组控制,便 于管理。用户可以按组件级、节点级和呈单一映像的全局系统级来监视系统活动 以及集群中各组件的资源和j 用情况。系统管理员可以监视系统资源利用情况、迸 程活动情况、系统日志、核心活动情况、相同资源等多个属性实例。 b w a t c h “8 是一个用简单的t e l t k 语言编写的服务器监测软件,用于监视系统 中各个节点的负载和内存使用情况。b w a t c h 程序的执行并不需要根据用户的权 限,任何只要能在其他机器上执行r s h 命令的普通用户都可以使用它。b w a t c h 程 6 序结构简单而小巧,被用于美国宾夕法尼亚州p a r a l o g i c 公司构建的b e o w u l f c l u s t e r 中。 n e t f i n i t y “”是i b m 推出的一套通用的管理解决方案,该解决方案的目的是监 测远程服务器的运行参数,例如:机器内部温度、硬件有无故障。此功能可以帮 助硬件维修工程师准确地判断损坏的硬件,了解系统崩溃的原因,这在一定程度上 减少了用户等待维修的时间。它的关键是运行在监测局域网中的目录服务器 ( d i r e c t o rs e r v e r ) ,被监测服务器的清单信息都存储在目录服务器的数据库里。 目前并行程序性能分析方法多种多样,虽然如何分析并行程序的性能无一定 规可循,但可以参考的方法有:统计程序各部分执行时间,将性能分析的重点放在 计算时间较长的那些部分上:分析计算量大的程序段中计算部分、通信部分和i o 部分,从而找出并行程序的性能瓶颈:对照理论计算的加速比和实际测量的加速比 之差异,仔细分析所设计的并行程序的并行粒度是否合适、负载是否平衡、通信 开销是否过大、存储访问冲突是否严重、c a c h e 命中率是否不佳或c a c h e 颠簸现象 过于明显等:从分析程序的效率和可扩展性出发,分析体系结构和算法的组合、问 题尺寸和系统规模之间的比例关系等。实际上这些方法无论从何种角度进行性能 分析和研究,都在围绕着一个中心进行,也就是如何描述和理解并行程序静态结 构和动态行为并掌握并行程序的性能行为特征,如何在此基础上对并行程序进行 准确有效( 甚至及时) 的性能分析和优化建议,如何使用户能够快速清晰地了解并 行程序的性能状况,并根据分析结果和优化建议对程序进行有效的修改从而得到 提高程序性能的目的。下面介绍几个国内外有关并行程序的性能分析工具。 清华大学的t h p t i i 系统是基于m p i 的监测型性能分析工具,它可以在应用程序 运行的同时跟踪其流程,并采集各处理机的c p u 和内存负载信息,然后将这些信息 实时地以图形方式显示在屏幕上,也可以将它们保存在日志文件中,在运行结束 后供程序员了解并行应用程序的运行情况,分析算法执行过程和系统负载的关系, 找出性能瓶颈。应用程序在利用t h p t h 监测其性能时,源代码不必进行任何改动, 只需要重新编译即可。所有w e b 用户都可以通过浏览器直观地观察应用程序运行时 的负载信息。 p a r a d y n 。”是w i s c o n s i n 大学推出的一种支持异构环境的用于测试大规模并行 程序性能的工具。在应用程序执行的过程中,动态地监测程序的运行状态,以3 w ( w h e n 一什么时候、w h e r e 一什么位置、w h y 一什么瓶颈) 性能瓶颈搜索模型为依据在二 进制代码中搜索性能的瓶颈,并试图自动地消除瓶颈,而完全不需要程序员介入, 这种方式可以避免基于跟踪工具造成的空间和时间的负载。p a r a d y n 在设计中的典 型特点有:可扩展性、自动搜索、定义良好的数据抽象、支持异构环境和高级语言、 开放式接口、使用流水线等。 p 3 t “”( p a r a m e t e r b a s e dp e r f o r m a n c ep r e d i c t i o nt 0 0 1 ) ,是一个基于分布存 储器的预测型性能测试工具。它可以根据各种参数,如c a c h e 页大小、c a c h e 容量、 路由策略、数据分布策略、网络带宽、连接建立时间等等,通过编译器预测该程 序的运行时间,从而可以在程序没有运行时通过改变各种参数得到相应的程序运 行性能。 1 7 当前集群系统监测系统的不足 目前市场上的监测系统大多数和专用的硬件捆绑,而且往往价格昂贵,普通 的用户难以接受。如i s c ( i n t e ls e r v e rc o n t r 0 1 ) 集群监测系统,只适用于使用i n t e l 架构的带有集成管理功能主板的集群计算机。如果集群中包含非i n t e l 节点,则i s c 无法在集群上运行。其它一些面向商用集群和科学计算集群的监测功能虽然丰富, 但造成集群节点上的资源被大量占用,从而降低了节点的工作效率。 对于复杂的集群系统来说,一套实用的、功能完备的集群并行应用监测系统是 十分必要的。该系统应该可以将各个节点的状态实时的、准确的、清晰的呈现给 用户,而且它应该是为集群量身定做,有效合理的使用节点杌资源,同时使用户 能够及时发现问题、初步判断问题原因并最终解决问题,从而尽量避免或减少因 某个计算节点的突发故障带来的损失。 1 8 本文研究思路与内容安排 通过对现有监测技术的分析,本文提出一种在采用i n f i n i b a n d 第三代技术的 2 0 节点集群系统上实现了一个实用型的可视化并行程序监测工具,在以图形化方 式把集群系统中软硬件状态实时呈现给集群用户的同时,有效的使用集群节点资 源,并最大程度的降低监测系统对集群性能的开销,同时可根据并行程序执行过 程中产生的l o g 文件以图形化方式重现程序执行过程的功能。 本文内容主要包括: ( 1 ) 自行建立一套l i n u x 集群监测系统c p m ( c l u s t e rpe r f o r m a n c em o n i t o r ) ,该 系统包括监测软件的服务端n i c ( n o d ei n f o r m a t i o nc o l l e c t i o n ) 和客户端v m ( v i s u a lm o n i t o r ) ; ( 2 ) 在实现c p m 的过程中,探讨l i n u x 平台下可视化图形界面的编程方法;研究 c c + + 语言访问m y s q l 数据库的主要方法;讨论在l i n u x 平台下创建后台守 护进程和u d ps o c k e t 的编程方法: ( 3 ) 对l i n u x 系统的p r o c 虚拟文件系统进行了详细分析,并给, 小, p r o c 的编程实现 方法; ( 4 ) 在c p m 集群监测系统中集成m p e 分析工具,以二种方式来分析、评价并行 8 绪论 程序算法; ( 5 ) 对c p m 进行测试和对比,并讨论了c p m 自身对集群系统性能的影响。 系统结构与功能 2 1 系统功能 第二章系统功麓与结构 l i n u x 集群性能监测系统( c p m :c l u s t e rp e r f o r m a n c em o n i t o r ) 是一个多点监 测、集中处理的分布式性能分析系统,主要由系统负载监测器、并行程序性能监 测器、性能数据接收器、可视化模块构成。位于性能分析中心的并行资源分析器 首先对用户提交的并行程序进行资源分析生成并行资源文件( 对于以自动方式插 入测量代码的并行程序在执行前与并行计算环境中的测量代码插入器取得联系) , 再经过作业提交分发到集群中的各个节点。当包含有测量代码的并行程序在集群 中并行运行对,分布在节点上的监测器以实时或事后方式将获取的性能数据送到 位于性能分析中心的性能数据接收器中。并行性能可视化模块一方面在并行程序 运行的同时,实时地在屏幕中显示负载信息,供用户监测:另一方面在程序运行结 束后,通过视图管理器抽取有效的性能数据进行加工,再将这些数据以图表的方 式进行显示。 图2 - 1c 蹦功能图 c p m 主要由两个子系统实现。一个是运行于集群中各个计算节点的信息采集 系统n i c ( n o d ei n f o r m a t i o nc o l l e c t i o n ) ,它负责计算节点的硬件信息采集、 1 0 系统结构与功能 并行程序信息采集、向数据库服务端保存数据,接受来自主控节点的命令。另一 个是运行于主控节点的人机交互系统v m ( v i s u a lm o n i t o r ) ,所有的命令的接收 和发送都是由它来进行的,同时负责从m y s q l 数据库系统中提取由计算节点保存 的数据,进行量化分析后以图形化的方式呈现给用户。所以,在设计上要具有x w i n d o w s 图形界面,提供图形化人机界面;具有数据库操作功能,完成数据的分 析;还应当包含通信部分方便与计算节点进行通信,以及以图形化的形式向用户 提供所需的信息的功能。 2 2c p m 的模块结构、系统结构和流程图 c p m 是以服务器客户端方式工作,同时涉及了数据库编程,网络编程和图形 化函数库等多种编程方式。 2 2 1 模块结构 c p m 9 , 功能上可以划分为四个模块:节点负载信息监测模块、并行程序性能监 测模块、数据收集模块,以及性能可视化模块。 图2 - 2c 蹦模块结构圈 1 节点负载信息的监测一般采用c l i e n t s e r v e r 模式。在集群的各个节点上,设 置一个监测器,t i p p l i n g ( s e r v e rd a e m o n ) 在后台运行。s e r v e rd a e m o n 每隔 一定时间就在后台收集负载信息记录在负载日志中。在l i n u x 系统中,正在运 系统结构与功能 行的进程的运行情况以及它所占用的资源情况都保存在p r o c 系统目录中。 s y s i n f od a e m o n 根据c i l e n t 端提供的进程1 d ,定期访p r o c 目录中的相应文件, 经过计算,得到该进程的系统资源利用情况,包括c p u $ | j 用率、内存利用率、 磁盘可用率、系统中的进程数、系统负载、网络流量等信息。此外,利用主板 上的传感器,还可以得到c p u 温度、主板温度、c p u 风扇转速等硬件信息。 2 并行程序性能监测模块主要由测量代码的插入和记录文件生成两部分构成。 ( 1 ) 测量代码插入 测量代码按插入方式可以分为: 自动插入 主要指在整个测量过程中,不以显式方式修改原来的并行程序。如为p v m 开 发的监视器工具x p v m 就以自动方式完成对指定代码的测量代码插入。这种插 入方式往往是在并行程序分发到各个节点后进行的,对程序员的要求较低, 使用方便,但缺乏灵活性,由于受到测量工具和方法的限制,使得不必关心 的代码也会被动地加入测量信息。 手动插入 这种插入方式需要在并行程序执行前,以手工方式对待测代码进行测量代 码的插入。如在m p i 基础上扩展的m p e 中提供了一系列图形化进程事件显示 工具。在使用显示进程的各种计算、通信事件的时间消耗,必须先在并行 程序中定义要记录的事件,然后在事件发生的前后插入m p e 的事件记录语 句。这种插入方式与自动方式相比,对程序员的要求较高,需要对测量工 具或方法本身有所了解,但使用灵活,可以任意设置测量代码。 ( 2 ) 记录文件的生成 常用的监视并行程序行为的方法是在程序运行的同时产生跟踪文件,在程序 执行完成后传递给性能数据接收器。对于并行程序运行状态的跟踪,主要依 据专门工具或方法对并行程序通信、同步、i o 等信息的记录,当然文件中所 记录的事件还可应用于其它场合,如程序的调试,运行情况的存储、重现和 可视化等。m p e 就可以几种方式在跟踪并行程序执行的同时产生运行记录文件 l o g f i l e ,这些文件本身描述了计算的整个过程。创建l o g f i l e 的最简单途径 是将并行程序与专门拦截m p i 调用的m p e 库相链接。 3 数据收集模块。由于大规模并行计算中,运算时间比较长,节点的采样频率不 能过快,否则会造成并行程序和整个集群的性能下降;但若采样频率太慢,又 容易漏掉对一些重要的数据的采集。故在设计上宜采用灵活的采样频率,该采 样频率可以由用户自定义设置。对于计算量大,通信量小的科学计算来说,采 样频率建议设置为0 5 - 1 秒;对于计算量小,通信量大的科学计算来说,采样 频率建议设置为1 - 2 秒。由于并行监测程序会监测到大量的数据,这些数据对 系统结构与功能 并行程序的分析、排错和优化有着重要的作用,因此需要把这些数据保存到数 据库中。 4 并行性能可视化模块。该模块既可以伴随并行程序的执行实时或事后形成视 图,在并行程序执行完成后自动给出结论和建议,也可以满足用户对同一并行 程序性能分析的多次查询要求。一个完整的视图可视化过程是这样的:首先对 来自性能数据接收器中的数据进行简单加工( 统计分析) 和重组( 排序) ,使处理 后的数据尽可能地表现出并行程序的行为和性能的各个侧面,再将这些性能数 据映射到某种视图上,以形式化的方式得以表现,借以帮助程序员理解并行程 序行为和性能。 视图的种类多种多样,主要有以下几类: ( 1 ) 根据视图并行性能侧面不同,可分为: 有关并行程序静态信息的视图:如任务派生视图、全局信息视图、事件记录 视图: 表现并行任务或处理机利用率的视图:如利用率图、程序并行性视图: 反映并行任务或处理机通信性能的视图:如任务通信视图、消息队列视图、 任务时空图: 用户自定义的视图:如自定义事件统计信息视图: 其它视图:如关键路径分析视图、程序状态跟踪视图。 ( 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论