微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > Linux操作系统高性能集群监控管理之道

Linux操作系统高性能集群监控管理之道

时间:05-06 来源:赛迪网 点击:

机上,或者分布在两者上。考虑到效率,我们只采用在结点上的合并。原因在于结点是监控数据的收集器与提供者。两个或多个同时的数据请求不会引起两次操作系统调用来收集数据,而是将第一次请求获得的数据缓存,并可以提供给第二次请求调用。这种方法减少了操作系统的负担,提高了监控系统的响应性。合并阶段也可以用于将多个数据源的数据以相互独立的收集速率结合,因为并不是所有的数据都以同样的速度改变,或者需要以同样的速率收集。

使用在结点层上合并的另一个原因是,减少了包括传输在内的信息量。许多/proc文件既包含动态数据也包含静态数据。删除最近一次传输后没有改变的值,一个结点发送的数据量可以大大地减少。合并不仅除去了不经常改变的动态值的传输,也解决了从不改变的静态值的传输。

3.传输阶段

监控数据几乎总是按一个层次结构组织起来。传输阶段的任务就是将层次数据进行有效的编码,形成一种能高效传输的数据格式。Java拥有的文件格式是存储层次数据的有效方法,并且用提供的Java APIs很容易完成。S-Expressions已经被认为是传输这种数据的另一个有效的方法。

关于传输监控数据普遍讨论的问题是,数据应该按二进制编码还是按文本格式编码。二进制数据更容易压缩,因此也能更有效地传输。但是,当采用/proc文件系统时,监控数据通常以人们易读的格式存储。在传输之前,将数据转换为二进制格式将需要更多的处理资源与时间。以文本格式保留收集的数据,结点资源能被用于更多非监控性的相关工作。

采用文本格式的数据将提供如下额外的益处:

◆ 平台独立性

当监控异构集群时,机器之间数据字节指令的配置不是永远相同的。文本格式的使用在代码方面解决了这个问题,而且体系结构独立不会影响更多的处理需求。

◆ 易读的格式

文本数据能以人们易读的格式进行组织。如果需要的话,这种特征能容易地进行程序调试或允许用户观看数据流。

◆ 有效压缩

数值数据的文本表示由来自10个字节集中的字符组成,而不是二进制下的256个字节集。它们产生的数字及模式的相对频率允许有效地使用基于压缩算法的字典及熵(平均信息量)。

/proc虚拟文件系统

/proc虚拟文件系统(也叫procfs)是Unix操作系统所使用的虚拟文件系统的Linux实现,包括Sun Solaris、LinuxBSD。在/proc开始时,它以一个标准文件系统出现,并包含与正在运行的进程IDs同样名字的文件。然而,在/proc中的文件不占用磁盘空间,它们存在于工作存储器(内存)中。/proc最初的目的是便于进程信息的存取,但是现在,在Linux中,它可被内核的每一部分使用来报告某些事情。

在/proc文件系统提供的成百上千的值当中,我们将集中考虑集群监控所需的最小集,它们包括:

◆ /proc/loadavg:包含系统负载平均值;

◆ /proc/meminfo:包含存储管理统计量;

◆ /proc/net/dev:包含网卡度量;

◆ /proc/stat:包含内核统计量;

◆ /proc/uptime:包含总的系统正常工作时间及空闲时间。

每个文件提供的值的数量是不同的。这些文件的完整有效值列表如下。

◆ /proc/loadavg提供以下数据:

1秒钟平均负载;

5秒钟平均负载;

15秒钟平均负载;

总作业数;

正在运行的作业总数。

◆ /proc/meminfo提供的存储器信息包括:

活动存储器;

不活动存储器;

缓冲存储器;

高速缓冲存储器;

总的自由存储器;

总的高位存储器;

自由高位存储器;

总的低位存储器;

自由低位存储器;

共享存储器;

交换存储器;

交换高速缓冲存储器;

交换自由存储器;

总存储器。

◆ /proc/net/dev中包括每个网卡的如下数据:

接收到的字节;

接收到的压缩字节;

收到的误码数;

收到的漏失误码;

收到的FIFO误码;

收到的帧误码;

收到的多播误码;

收到的总包数;

已传输的字节;

已传输的压缩字节;

传输误码总数;

传输载波误码;

传输冲突误码;

传输漏失误码;

传输FIFO误码;

传输的总包数。

◆ /proc/stat提供:

引导时间;

上下文切换数量;

中断总量;

进页面总数;

出页面总数;

进程总数;

换入总数;

换出总数;

合计CPU空闲时间;

合计CPU nice时间;

合计CPU系统时间;

合计CPU用户时间。

同时提供对每个CPU的:

单个CPU空闲时间;

单个CPU nice时间;

单个CPU系统时间;

单个CPU用户时间。

以及对每个磁盘驱动器的如下数据:

单个磁盘块读;

单个磁盘块写;

单个磁盘I/O总数;

单个磁盘I/O读;

单个磁盘I/O写。

◆ /proc/uptime中包括:

系统总工作时间;

系统总空闲时间。

值得注意的是,每次某个/proc被读时,一个句柄函数都被内核

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

网站地图

Top