微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 高性能的Linux集群监控之道

高性能的Linux集群监控之道

时间:09-12 来源:互联网 点击:

监控是集群管理的核心任务监控数据可用于调度任务负载平衡向管理员报告软硬件故障并广泛地控制系统使用情况监控信息必须在不影响集群性能的情况下获得本文将讨论使用/proc文件系统和Java来获得监控数据的方法

Java在Linux集群中的应用

Java技术为集群管理开发者提供了许多解决问题的办法Java是动态灵活可移植的这些不寻常的特征使得它成为了在异构网络及平台上构造集群管理的理想基础

Java具有广泛的例程库很容易处理IP协议如TCPUDP并可在multihomed主机上进行网络程序设计用它创建网络连接比用C或C++更容易通过Java本地接口(JNI)运行在Java 虚拟机(JVM)内的Java代码能够与用其它语言编写的应用及库文件相互操作并汇编

在构造集群监控和管理时Java早已是一个可选的语言然而Java语言通常只被用于系统的前端或集群主机部分而将用C 语言编写的守护进程安装在集群结点上尽管Java程序设计语言提供了许多优点但是对于高性能集群监控Java能够有效地替换运行在每个结点上的C 语言守护进程吗?这将是本文讨论的重点

高性能监控

监控Linux集群工具传统上以秒为测量频率来提供有限量的数据而高性能集群监控被定义为“以intrasecond为测量频率从结点有效地采集数据的能力”当涉及较大集群时监控软件的低效率问题就变得更加严重这是因为所运行的应用软件必须互相协调或共享全局资源

在一个结点上的阻隔冲突(Interference)能影响其它结点上作业的运行例如一个MPI作用需要与所有参与的结点同步一种解决办法是收集少量的数据并以小频率传输然而如果是高性能监控这种解决办法是不可接受的因为有较重利用率的集群应该被频繁持续地监控本地作业调度器必须能够基于资源使用情况做快速决策管理员经常希望收到紧急事件的立即通知并希望观察到历史趋势数据如果集群不能被频繁持续地监控那么这些要求是不可能实现的因此必须采取一些措施如使用更有效的算法增加传输的并行性提高传输协议及数据格式的效率减少冗余等

在跟踪运行中的资源使用情况时压缩Profiling应用有助于调试程序或优化程序对一个给定的应用而言像存储器网络CPU这样动态资源的使用可能快速地改变着为了能够观察应用是怎样使用这些资源的一种可能的办法是使用高频率的监控

即使用户对高频率监控没有兴趣如果算法是有效的不管监控频率是多少它也将消费很少的资源在异构集群中这种效率将更重要用户的作业可以被分散到较快的及较慢的结点上慢的结点需要全部CPU来跟上较快的结点并与之同步一个监控程序花费在较慢结点上的CPU时间是作业的关键路径

监控阶段

集群监控主要消耗CPU周期与网络带宽这两个重要资源然而资源消费问题与这两个资源是根本不同的CPU利用问题对结点而言是完全本地化的问题可通过创建有效的收集与合并算法来解决网络带宽是共享资源是规模问题可以通过最小化网络上传输的数据量来解决

为了解决这两个问题我们将集群监控分为三个阶段收集合并传输收集阶段负责从操作系统装载数据分析数据值并存储数据合并阶段负责将来自多个数据源的数据合在一起决定数据值是否改变并过滤它们传输阶段负责压缩并传输数据本文集中讨论Linux集群监控的收集阶段

收集阶段

Linux有几种方法来进行系统统计每种方法都各有其优缺点

◆ 使用现有的工具

标准及非标准工具能执行一个或多个收集合并及传输阶段如rstatd或SNMP工具然而标准的rstat后台程序提供的信息是有限的速度慢而且效率低

◆ 内核模块

几个系统监控工程利用内核模块来存取监控数据一般情况下这是很有效的收集系统数据的方法然而这种方法存在的问题是当主内核源内有其它改变时必须保持代码一致性一个内核模块可能与用户想使用的其它内核模块相冲突此外在使用监控系统之前用户必须获得或申请模块

◆ /proc虚拟文件系统

/proc 虚拟文件系统是一个较快的高效率执行系统监控的方法使用/proc的主要缺点是必须保持代码分析与/proc 文件格式改变的同步事实表明Linux内核的改变比/proc 文件格式的改变要更频繁所以用/proc虚拟文件系统比用内核模块存在的问题要少

◆ 混合系统

某些监控系统采用混合方式用内核模块收集数据用/proc虚拟文件系统作为数据接口

合并阶段

合并阶段的实现可以在结点上集群管理的主机上或者分布在两者上考虑到效率我们只采用在结点上的合并原因在于结点是监控数据的收集器与提供者两个或多个同时的数据请求不会引起两次操作系统调用来收集数据而是将第一次请求获得的数据缓存并可以提供给第二次请求调用这种方法减少了操作系统的负担提高了监控系统的响应性合并阶段也可以

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top