电脑技术学习

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

dn001


使用在结点层上合并的另一个原因是,减少了包括传输在内的信息量。许多/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中包括:

系统总工作时间;

系统总空闲时间。

标签: linux