代码改变世界

Collectl学习--简介

2013-01-19 17:05  lefan  阅读(787)  评论(0编辑  收藏  举报

      对系统资源的监控,是系统管理者一个必备的任务。从OS角度讲,包括CPU/IO/Network/FS等等,从Database的角度讲,包括Active Sessions/ON CPU/Disks/Top Segments/Top SQL等等。而Database对资源的利用也反映在OS一级上,对OS计算资源的充分均衡利用是我们的目标。那么,如何有效的掌握OS的资源利用情况就成为了一个System Administrator,Database Administrator日常工作的一个重点。

Linux上的常规监控工具主要有top, vmstat, iostat, netstat, sar这些。对这些工具的熟练运用应该能解决大部分问题,不过,这些工具也太散了,学习周期是一个很大的问题。这里推荐的一个工具了,collectl,一个开源的sourceforge上的项目,http://collectl.sourceforge.net

1Collectl

    Collectl 是一个轻量级的性能监控工具,可监控包括 CPU、磁盘、带宽、内存、网络、NFS、进程等等信息。对系统资源的监控,是系统管理员的一个必备的任务,我们经常需要监控系统资源以便解决相应的系统问题。相对于IBM的监控工具nmon,collectl是支持socket发送数据,对于很多机器的监控,nmon得开很多的窗口,而collectl只需在一个窗口就能看到所有机器的数据。

先看看架构图

 

  如上图显示,从/ proc中读取数据,将其结果写入到一个文件中,或在终端上,数据的可以按照不同的路径实现,和这些路径取决于你的选择。

 

2、三种模式:

 nteractive Mode

这是默认的模式,在这种模式下数据从/ proc读取并且分析。这实在是没有什么特殊的功能,就是着眼于当前和之前值之间的变化。此功能,负责格式化/配置输出。

Record Mode

数据的收集同nteractive Mode一样通过/proc目录,但是该模式会通过分析把结果写入到一个文件之中。通过排除计算和格式化的输出,这是最有效的方法收集数据并且为什么collectl通过此种方式运行时是如此轻量级的。

Playback Mode

这个模式同互动模式类似,只是该软件获取数据的途径不是从/proc文件系统,而是从一个文件中获取数据。这意味着所有的选项都是依然可以应用的。这儿也有一个开关可以允许你选择查看数据的时间段回放。

3、支持socket发送数据

支持socket发送数据,这对于一个有几十台以上机器的cluster来说简直就是一个福音。可以通过另一个命令接收整个cluster里面所有机器实时发送过来的数据,通过一个屏幕显示出来,这对于掌握整个cluster的工作状态是极其方便的。

对于一般的机房来说,虽然机房里的所有机器不是一般意义上的cluster,但是也可以在所有机器上安装collectl,然后把性能信息实时发送到一个监控机器,实现grid control。

collectl有一个工具colmux可以实现上面的类似功能,是collectl作者的另一个开源项目,叫Collectl Utilities(http://collectl-utils.sourceforge.net/)。