Collectl:高级 Linux 性能报告工具
Linux 系统管理员最重要的职责是确保他/她管理的系统处于良好状态。 Linux 系统管理员可以使用许多工具来帮助监视和显示系统中的进程,例如 top 和 htop,但这些工具都无法与 collectl 竞争。
collectl 是一个非常好的、功能丰富的命令行实用程序,可用于收集描述当前系统状态的性能数据。与大多数其他监控工具不同,collectl 并不关注有限数量的系统指标,相反,它可以收集许多不同类型的系统资源的信息,例如 cpu、磁盘、内存、网络、套接字、tcp、inode、infiniband、集群、内存、nfs、进程、quadrics、slabs 和 buddyinfo。
使用 collectl 的一个非常好的事情是,它还可以发挥仅为特定目的而设计的实用程序的作用,例如 top、ps、iotop 等。哪些功能使 collect 成为一个有用的工具?
以下是 collectl 命令行实用程序对你们来说最重要的一些功能。
收藏特色
- 它可以交互运行、作为守护进程运行,或者两者兼而有之。
- 它可以以多种格式显示输出。
- 它能够监控几乎所有子系统。
- 它可以发挥许多其他实用程序的作用,例如 ps、top、iotop 和 vmstat。
- 它具有记录和回放捕获的数据的能力。
- 它可以导出多种文件格式的数据。 (当您想使用外部工具分析数据时,这非常有用)。
- 它可以作为服务运行来监视远程计算机或整个服务器集群。
- 它可以在终端中显示数据,并写入文件或套接字。
如何在Linux中安装collectl
collectl 实用程序在所有 Linux 发行版上运行,运行它唯一需要的是 perl,因此请确保您已安装 Perl(来自在您的计算机中安装 collectl 之前,请先在计算机中预安装)。
在 Debian 系统中安装 Collectl
以下命令可用于在基于 Debian 的发行版(例如 Ubuntu 和 Linux Mint)中安装 collectl 实用程序。
sudo apt-get install collectl
在 Debian 系统中安装 Collectl
如果您使用基于 RedHat 的发行版,例如 Rocky Linux 或 AlmaLinux,或任何其他 Linux 发行版,您可以轻松下载 tarball、解压并运行,如图所示
wget https://sourceforge.net/projects/collectl/files/latest/download -O collectl.tar.gz
tar -xvf collectl.tar.gz
cd collectl-*
./INSTALL
在Linux中使用Collectl监控工具
collectl 工具安装完成后,您可以轻松地从终端运行它,甚至无需任何选项。以下命令将以非常简短且易于阅读的格式显示有关 cpu、磁盘和网络统计信息的信息。
collectl
正如你们从终端屏幕上显示的上述输出中看到的那样,使用命令输出中存在的系统指标值非常容易,因为它显示在一行上。
当不带任何选项执行 collectl 实用程序时,它会显示有关以下子系统的信息:
- 中央处理器
- 磁盘
- 网络
注意:在我们的例子中,子系统是可以测量的每种类型的系统资源。
您还可以通过将该命令与 --all
选项结合使用来显示除平板之外的所有子系统的统计信息,如下所示。
collectl --all
但是,如何借助该实用程序监控 cpu 使用情况呢? -s
选项应用于控制要收集或回放哪个子系统数据。
例如,可以使用以下命令来监视 cpu 使用情况的摘要。
collectl -sc
当您将该命令与“scdn”结合使用时会发生什么?学习如何使用命令行工具的最佳方法是尽可能多地练习,因此在终端中运行以下命令,看看会发生什么。
collectl -scdn
你可以很容易地理解,默认选项是“cdn”,它代表cpu、磁盘和网络数据。该命令的结果与“collectl -scn”的输出相同
如果要收集有关内存的数据,请使用以下命令。
collectl -sm
当您想要获取有关内存使用情况、可用内存以及其他对系统性能重要的信息的详细信息时,上述输出非常有用。
tcp 上的一些数据怎么样?使用以下命令来执行此操作。
collectl -st
获得一些经验后,您可以轻松组合选项以获得您想要的结果。例如,您可以组合表示 tcp 的“t
”和表示 cpu 的“c
”。下面的命令可以做到这一点。
collectl -stc
我们人类很难记住所有可用的选项,因此我发布了该工具支持的子系统的摘要列表。
b
– 好友信息(内存碎片)c
– CPUd
– 磁盘f
– NFS V3 数据i
– Inode 和文件系统j
– 中断l
– 光泽m
– 内存n
– 网络s
– 套接字t
– TCPx
– 互连y
– Slabs(系统对象缓存)
对于系统管理员或 Linux 用户来说,一个非常重要的数据是收集的磁盘使用数据。以下命令将帮助您监控磁盘使用情况。
collectl -sd
您还可以使用“-sD
”选项来收集单个磁盘上的数据,但您必须知道,不会报告总磁盘上的信息。
collectl -sD
您还可以使用其他详细子系统来收集详细数据。以下是详细子系统的列表。
C
– CPUD
– 磁盘E
– 环境数据(风扇、功率、温度),通过 ipmitoolF
– NFS 数据J
– 中断L
– Lustre OST 详细信息或客户端文件系统详细信息N
– 网络T
– 65 个 TCP 计数器仅以绘图格式提供X
– 互连Y
– Slabs(系统对象缓存)Z
– 进程
collectl 实用程序中有许多可用选项,但没有足够的时间和空间在一篇文章中涵盖所有这些选项。然而,值得一提的是并教授如何使用 top 和 ps 等实用程序。
让 collectl 作为 top 实用程序工作非常容易,只需在终端中运行以下命令,您就会在 top 中看到类似的输出工具在 Linux 系统中执行时会告诉您。
collectl --top
现在最后但并非最不重要的一点是,要使用 collectl 实用程序作为 ps 工具,请在终端中运行以下命令。您将获得有关系统中进程的信息,就像在终端中运行“ps”命令一样。
collectl -c1 -sZ -i:1
我非常确定很多Linux系统管理员都会喜欢collectl工具,并且在充分使用它时会感受到它的强大。如果您想将 collectl 的知识提升到一个新的水平,请参阅其手册页并继续练习。
只需在终端中输入以下命令并开始阅读。
man collectl