centos性能监控系列二:Collectl初解
对于一个 Linux 系统管理员来说确保自己管理的系统处于一个良好的状态是其首要责任。
Linux 系统管理员可以找到有很多工具来帮助自己监控和显示系统中的进程,例如 top 和 htop
今天介绍一款工具collectl,使用比较方便;
介绍:
collectl是一款非常优秀并且有着丰富的命令行功能的实用程序,你可以用它来采集描述当前系统状态的性能数据。不同于大多数其它的系统监控工具,collectl 并非仅局限于有限的系统度量,相反,它可以收集许多不同类型系统资源的相关信息,如 cpu 、disk、memory 、network 、sockets 、 tcp 、inodes 、infiniband 、 lustre 、memory、nfs、processes、quadrics、slabs和buddyinfo等。
使用 collectl 的另一个好处就是它可以替代那些特定用途的工具如: top、ps、iotop 等等其它工具。那么 collectl 有什么特性而使其成为一个有用的工具呢?
Collectl 特性
可以交互式地运行或作为一个守护进程,或同时二者兼备地运行。
可以以多种格式显示输出。
可以监控几乎所有的子系统。
可以替代许多工具如 ps、top、iotop、vmstat。
可以记录并回放捕获的数据。
可以将数据导出成多种数据格式。(这在你想用外部工具分析数据时非常有用)
可以作为一个服务来监控远程机或者整个服务器集群。
可以在终端显示数据,写入数据到文件或者一个套接字。
如何在Linux上安装collectl
collectl可以在所有的 Linux 发行版上运行,唯一需要的就是 perl 语言,所以在安装 collectl 之前,一定要确保你的电脑上已经安装了Perl。
对于Debian/Ubuntu/Linux Mint
下面的命令可以用来在以 Debian 为基础的设备如 Ubuntu 上安装 collectl。
- $ sudo apt-get install collectl
 
对于RHEL/CentOS/Fedora
如果你正在使用基于红帽的发行版,你可以用 yum 命令轻松获取它。
- # yum install collectl
 
一些关于collectl的实例
collectl 工具安装完成之后,你可以轻松地在终端运行它,你甚至不需要指定任何选项。下面的命令将会以简短易读的格式显示cpu、硬盘和网络信息。
- # collectl
 - waiting for 1 second sample...
 - #
 - #cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut
 - 13 5 790 1322 0 0 92 7 4 13 0 5
 - 10 2 719 1186 0 0 0 0 3 9 0 4
 - 12 0 753 1188 0 0 52 3 2 5 0 6
 - 13 2 733 1063 0 0 0 0 1 1 0 1
 - 25 2 834 1375 0 0 0 0 1 1 0 1
 - 28 2 870 1424 0 0 36 7 1 1 0 1
 - 19 3 949 2271 0 0 44 3 1 1 0 1
 - 17 2 809 1384 0 0 0 0 1 6 0 6
 - 16 2 732 1348 0 0 0 0 1 1 0 1
 - 22 4 993 1615 0 0 56 3 1 2 0 3
 
正如上面终端上所显示的,我们很容易观察该命令输出的系统度量值,因为它每次以一行显示。
不加任何参数执行 collectl 会显示下面子系统的信息
- cpu
 - 磁盘
 - 网络
 
但是,你如何用它来监控 cpu 的使用情况呢? ‘-s’ 选项可以用来控制哪个子系统的数据需要收集和回放。
例如下面的命令可以用来对cpu使用情况进行一个总结。
- # collectl -sc
 - waiting for 1 second sample...
 - #
 - #cpu sys inter ctxsw
 - 15 2 749 1155
 - 16 3 772 1445
 - 14 2 793 1247
 - 27 4 887 1292
 - 24 1 796 1258
 - 16 1 743 1113
 - 15 1 743 1179
 - 14 1 706 1078
 - 15 1 764 1268
 
当你想要进一步了解内存使用信息、空闲的内存或者与你系统性能有关的重要资料时,上面的输出将是非常有用的。
如果想搜集一点儿 tcp 的数据呢?使用下面的命令来实现吧。
- # collectl -st
 - waiting for 1 second sample...
 - #
 - # IP Tcp Udp Icmp
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 0 0
 
当你熟练到一定程度时,你就可以很轻松地得到你想要的结果了。例如你可以将关于 tcp 的“t”选项和关于 cpu 的“c”选项组合到一起。下面的命令就是如此。
- # collectl -stc
 - waiting for 1 second sample...
 - #
 - #cpu sys inter ctxsw IP Tcp Udp Icmp
 - 23 8 961 3136 0 0 0 0
 - 24 5 916 3662 0 0 0 0
 - 21 8 848 2408 0 0 0 0
 - 30 10 916 2674 0 0 0 0
 - 38 3 826 1752 0 0 0 0
 - 31 3 820 1408 0 0 0 0
 - 15 5 781 1335 0 0 0 0
 - 17 3 802 1314 0 0 0 0
 - 17 3 755 1218 0 0 0 0
 - 14 2 788 1321 0 0 0 0
 
以上简单举几个例子;
对于我们普通大众来说记住这些选项很困难,所以在这里,我整理出了一个列表来总结这个工具支持的选项。
- b – buddy info (内存碎片)
 - c – CPU
 - d – Disk
 - f – NFS V3 Data
 - i – Inode and File System
 - j – Interrupts
 - l – Lustre
 - m – Memory
 - n – Networks
 - s – Sockets
 - t – TCP
 - x – Interconnect
 - y – Slabs (系统对象缓存)
 
对于一个系统管理员或者一个 Linux 用户来说很重要的一种数据就是硬盘的使用情况。下面的命令可以帮你监控硬盘使用情况。
- # collectl -sd
 - waiting for 1 second sample...
 - #
 - #KBRead Reads KBWrit Writes
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 92 7
 - 0 0 0 0
 - 0 0 36 3
 - 0 0 0 0
 - 0 0 0 0
 - 0 0 100 7
 - 0 0 0 0
 
你也可以使用“-sD”选项来采集单个硬盘的数据,不过你必须知道这就不会显示全部硬盘的信息。
- # collectl -sD
 - waiting for 1 second sample...
 - # DISK STATISTICS (/sec)
 - # Pct
 - #Name KBytes Merged IOs Size KBytes Merged IOs Size RWSize QLen Wait SvcTim Util
 - sda 0 0 0 0 52 11 2 26 26 1 8 8 1
 - sda 0 0 0 0 0 0 0 0 0 0 0 0 0
 - sda 0 0 0 0 24 0 2 12 12 0 0 0 0
 - sda 0 0 0 0 152 0 4 38 38 0 0 0 0
 - sda 0 0 0 0 192 45 3 64 64 1 20 20 5
 - sda 0 0 0 0 204 0 2 102 102 0 0 0 0
 - sda 0 0 0 0 0 0 0 0 0 0 0 0 0
 - sda 0 0 0 0 116 26 3 39 38 1 16 16 4
 - sda 0 0 0 0 0 0 0 0 0 0 0 0 0
 - sda 0 0 0 0 0 0 0 0 0 0 0 0 0
 - sda 0 0 0 0 32 5 3 11 10 1 16 16 4
 - sda 0 0 0 0 0 0 0 0 0 0 0 0 0
 
你也可以使用其它详细的子系统来采集详细的数据。下面是详细子系统的一个列表。
- C – CPU
 - D – Disk
 - E – Environmental data (fan, power, temp), via ipmitool
 - F – NFS Data
 - J – Interrupts
 - L – Lustre OST detail OR client Filesystem detail
 - N – Networks
 - T – 65 TCP counters only available in plot format
 - X – Interconnect
 - Y – Slabs (system object caches)
 - Z – Processes
 
collectl 工具中有许多选项,但是仅用一篇文章来介绍肯定是介绍不过来的。然而如果将它当作 top 和 ps 工具来使用还是值得一提的。
很容易将 collectl 当作 top 来使用,只要在 Linux 系统的终端运行下面的命令你就会看到和 top 工具类似的输出。
- # collectl --top
 - # TOP PROCESSES sorted by time (counters are /sec) 13:11:02
 - # PID User PR PPID THRD S VSZ RSS CP SysT UsrT Pct AccuTime RKB WKB MajF MinF Command
 - ^COuch!tecmint 20 1 40 R 1G 626M 0 0.01 0.14 15 28:48.24 0 0 0 109 /usr/lib/firefox/firefox
 - 3403 tecmint 20 1 40 R 1G 626M 1 0.00 0.20 20 28:48.44 0 0 0 600 /usr/lib/firefox/firefox
 - 5851 tecmint 20 4666 0 R 17M 13M 0 0.02 0.06 8 00:01.28 0 0 0 0 /usr/bin/perl
 - 1682 root 20 1666 2 R 211M 55M 1 0.02 0.01 3 03:10.24 0 0 0 95 /usr/bin/X
 - 3454 tecmint 20 3403 8 S 216M 45M 1 0.01 0.02 3 01:23.32 0 0 0 0 /usr/lib/firefox/plugin-container
 - 4658 tecmint 20 4657 3 S 207M 17M 1 0.00 0.02 2 00:08.23 0 0 0 142 gnome-terminal
 - 2890 tecmint 20 2571 3 S 340M 68M 0 0.00 0.01 1 01:19.95 0 0 0 0 compiz
 - 3521 tecmint 20 1 24 S 710M 148M 1 0.01 0.00 1 01:47.84 0 0 0 0 skype
 - 1 root 20 0 0 S 3M 2M 0 0.00 0.00 0 00:02.57 0 0 0 0 /sbin/init
 - 2 root 20 0 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 kthreadd
 - 3 root 20 2 0 S 0 0 0 0.00 0.00 0 00:00.60 0 0 0 0 ksoftirqd/0
 - 5 root 0 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kworker/0:0H
 - 7 root 0 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kworker/u:0H
 - 8 root RT 2 0 S 0 0 0 0.00 0.00 0 00:04.42 0 0 0 0 migration/0
 - 9 root 20 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 rcu_bh
 - 10 root 20 2 0 R 0 0 0 0.00 0.00 0 00:02.22 0 0 0 0 rcu_sched
 - 11 root RT 2 0 S 0 0 0 0.00 0.00 0 00:00.05 0 0 0 0 watchdog/0
 - 12 root RT 2 0 S 0 0 1 0.00 0.00 0 00:00.07 0 0 0 0 watchdog/1
 - 13 root 20 2 0 S 0 0 1 0.00 0.00 0 00:00.73 0 0 0 0 ksoftirqd/1
 - 14 root RT 2 0 S 0 0 1 0.00 0.00 0 00:01.96 0 0 0 0 migration/1
 - 16 root 0 2 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 kworker/1:0H
 - 17 root 0 2 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 cpuset
 
还有不了解的额,在你的终端键入下面的命令开始阅读吧。
- # man collectl
 
centos性能监控系列二:Collectl初解的更多相关文章
- centos性能监控系列三:监控工具atop详解
		
引言 Linux以其稳定性,越来越多地被用作服务器的操作系统(当然,有人会较真地说一句:Linux只是操作系统内核:).但使用了Linux作为底层的操作系统,是否我们就能保证我们的服务做到7*24地稳 ...
 - centos性能监控系列一:常用监控命令
		
Linux系统出现问题时,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来判断究竟是哪一部分(内存.CPU.硬盘--)出了问题 下面就让我们了解一下这些常用的性能监控工具. 1.upti ...
 - Android 性能监控系列一(原理篇)
		
欢迎关注微信公众号:BaronTalk,获取更多精彩好文! 一. 前言 性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿.响应速度慢.发热严重.流量电 ...
 - 性能优化系列二:JVM概念及配置
		
一.虚拟机组成 虚拟机主要由三部分组成:编译器(执行引擎),堆与栈. 1. 编译器 编译器分为即时编译器与解释器. 即时编译器将代码编译成本地代码存于code区.因此它快,但它有内存限制! 解释器逐行 ...
 - CentOS 性能监控之nmon
		
工具集: Nmon 性能数据收集分析工具Nmon analyser 性能数据分析工具,excel文件nmon_x86_sles10 Nmon在x86_sles10下二进制执行文件 nmon概述 n ...
 - 服务性能监控系列之Metrics
		
Metrics是一个提供服务性能检测工具的Java类库,它提供了功能强大的性能指标工具库用于度量生产环境中的各关键组件性能. 度量类型 Metrics提供了以下几种基本的度量类型: Gauge:用于提 ...
 - SQL Server 监控系列 —— 二
		
http://www.cnblogs.com/bhtfg538/archive/2011/01/21/1939706.html
 - 使用vmstat和iostat命令进行Linux性能监控【转】
		
转自:https://linux.cn/article-4024-1.html 这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系 ...
 - vmstat和iostat命令进行Linux性能监控
		
这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris). 如果vmstat和 ...
 
随机推荐
- SQL Server里等待统计(Wait Statistics)介绍
			
在今天的文章里我想详细谈下SQL Server里的统计等待(Wait Statistics),还有她们如何帮助你立即为什么你的SQL Server当前很慢.一提到性能调优,对我来说统计等待是SQL S ...
 - 前端js的书写规范和高效维护的方案_自我总结使用的方案
			
作为程序员,人生最值得幸福的事有几件: 解决困扰了很长时间的问题 升职加薪 找个漂亮又靠谱的对象 深得领导的喜欢 带领团队冲锋陷阵 ... 哈哈,这些都是梦想,暂时想想就好了.这肯定和我说的东西不符合 ...
 - mysqldump: Couldn't execute 'show table status '解决方法
			
执行:[root@host2 lamp]# mysqldump -F -R -E --master-data=2 -p -A --single-transaction 在控制台端出现 mysqld ...
 - 高级四则运算器—结对项目反思(193 & 105)
			
高级四则运算器—结对项目反思(193 & 105) 本周我和一位韩国同学(71061105)一起结对编程完成了我们的结对项目——高级的小学四则运算题目生成器. PSP表格 PSP2.1 P ...
 - Javascript刷新页面的八种方法
			
/** * Javascript刷新页面的八种方法 * 说明一下,jQuery没有发现刷新页面的方法. */ 1 history.go(0) 2 location.reload() 3 locatio ...
 - 怎样实现Web控件文本框Reset的功能
			
在ASP.NET开发过程序,在数据插入之后,文本框TextBox控件需要Reset.如果只有一两个文件框也许没有什么问题,如果网页上有很多文本框,你就会有点问题了.再加上某一情形,一些文本框是有默认值 ...
 - 【C#】1.2 控制台应用程序学习要点
			
分类:C#.VS2015 创建日期:2016-06-14 教材:十二五国家级规划教材<C#程序设计及应用教程>(第3版) 一.要点概述 <C#程序设计及应用教程>(第3版)的第 ...
 - 与众不同 windows phone (44) - 8.0 位置和地图
			
[源码下载] 与众不同 windows phone (44) - 8.0 位置和地图 作者:webabcd 介绍与众不同 windows phone 8.0 之 位置和地图 位置(GPS) - Loc ...
 - Studio for WPF:使用 C1TileView 创建图片库
			
C1TileView 提供了数据交互浏览的功能.允许我们设置最大化和最小化浏览模板,我们可以通过最小化模板快速定位详细浏览选项. 下面我们分步分享实现方法: 1.添加 C1TileView 到窗体,并 ...
 - 泛函编程(10)-异常处理-Either
			
上节我们介绍了新的数据类型Option:一个专门对付异常情况出现时可以有一致反应所使用的数据类型.Option可以使编程人员不必理会出现异常后应该如何处理结果,他只是获得了一个None值,但这个Non ...