Linux操作系统高性能集群监控管理之道
2007-06-06 10:50:05 来源:WEB开发网在跟踪运行中的资源使用情况时,压缩Profiling应用有助于调试程序或优化程序。对一个给定的应用而言,像存储器、网络、CPU这样动态资源的使用可能快速地改变着,为了能够观察应用是怎样使用这些资源的,一种可能的办法是使用高频率的监控。
即使用户对高频率监控没有兴趣,如果算法是有效的,不管监控频率是多少,它也将消费很少的资源。在异构集群中这种效率将更重要,用户的作业可以被分散到较快的及较慢的结点上,慢的结点需要全部CPU来跟上较快的结点并与之同步。一个监控程序花费在较慢结点上的CPU时间是作业的关键路径。
监控阶段
集群监控主要消耗CPU周期与网络带宽这两个重要资源。然而,资源消费问题与这两个资源是根本不同的。CPU利用问题对结点而言是完全本地化的问题,可通过创建有效的收集与合并算法来解决。网络带宽是共享资源,是规模问题,可以通过最小化网络上传输的数据量来解决。
为了解决这两个问题,我们将集群监控分为三个阶段:收集、合并、传输。收集阶段负责从操作系统装载数据、分析数据值,并存储数据。合并阶段负责将来自多个数据源的数据合在一起,决定数据值是否改变并过滤它们。传输阶段负责压缩并传输数据。本文集中讨论Linux集群监控的收集阶段。
1.收集阶段
Linux有几种方法来进行系统统计,每种方法都各有其优缺点。
◆ 使用现有的工具
标准及非标准工具能执行一个或多个收集、合并及传输阶段,如rstatd或SNMP工具,然而标准的rstat后台程序提供的信息是有限的,速度慢而且效率低。
◆ 内核模块
几个系统监控工程利用内核模块来存取监控数据。一般情况下,这是很有效的收集系统数据的方法。然而这种方法存在的问题是,当主内核源内有其它改变时,必须保持代码一致性。一个内核模块可能与用户想使用的其它内核模块相冲突。此外,在使用监控系统之前,用户必须获得或申请模块。
更多精彩
赞助商链接