网站搜索

如何使用 Linux 工具集生成和交付系统活动报告 - 第 3 部分


作为系统工程师,您经常需要生成显示系统资源利用率的报告,以确保:1) 资源得到最佳利用,2) 防止出现瓶颈,3) 确保可扩展性等。

除了用于检查磁盘、内存和 CPU 使用情况的众所周知的本机 Linux 工具之外(仅举几个例子),红帽企业 Linux 7 还提供了两个额外的工具集来增强您可以为报告收集的数据: sysstat 和 dstat。

在本文中,我们将描述两者,但我们首先回顾一下经典工具的用法。

本机 Linux 工具

使用df,您将能够报告文件系统的磁盘空间和索引节点使用情况。您需要监视两者,因为空间不足将阻止您保存更多文件(甚至可能导致系统崩溃),就像索引节点用完意味着您无法将更多文件与其相应的数据链接一样结构,从而产生相同的效果:您将无法将这些文件保存到磁盘。


df -h 		[Display output in human-readable form]
df -h --total         [Produce a grand total]


df -i 		[Show inode count by filesystem]
df -i --total 	[Produce a grand total]

使用du,您可以按文件、目录或文件系统估计文件空间使用情况。

例如,让我们看看 /home 目录使用了多少空间,其中包括用户的所有个人文件。第一个命令将返回整个 /home 目录当前使用的总空间,而第二个命令还将显示按子目录分类的列表:


du -sch /home
du -sch /home/*

不要错过

  1. 检查 Linux 磁盘空间使用情况的 12 个“df”命令示例
  2. 10 个“du”命令示例来查找文件/目录的磁盘使用情况

您的工具集中不能缺少的另一个实用程序是 vmstat。它可以让您快速浏览有关进程、CPU 和内存使用情况、磁盘活动等的信息。

如果不带参数运行,vmstat 将返回自上次重新启动以来的平均值。虽然您可能偶尔会使用这种形式的命令,但按定义的样本之间的时间间隔依次获取一定数量的系统利用率样本会更有帮助。

例如,


vmstat 5 10

将返回每 5 秒采集的 10 个样本:

如上图所示,vmstat 的输出按列划分:procs(进程)、内存交换 >io系统cpu。每个字段的含义可以在vmstat手册页的字段描述部分找到。

vmstat 在哪里可以派上用场?让我们检查一下 yum 更新之前和期间系统的行为:


vmstat -a 1 5

请注意,当磁盘上的文件被修改时,活动内存量会增加,写入磁盘的块数(bo)也会增加,CPU 时间也会增加。专用于用户进程(我们)

或者在将大文件直接保存到磁盘的过程中(由dsync引起):


vmstat -a 1 5
dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

在这种情况下,我们可以看到更多的块被写入磁盘(bo),这是预料之中的,但它必须等待的 CPU 时间也增加了在处理任务(wa)之前完成的 I/O 操作。

不要错过:Vmstat – Linux 性能监控

其他 Linux 工具

正如本章介绍中提到的,您还可以使用其他工具来检查系统状态和利用率(它们不仅由 Red Hat 提供,还由其官方支持的其他主要发行版提供)存储库)。

sysstat 软件包包含以下实用程序:

  1. sar(收集、报告或保存系统活动信息)。
  2. sadf(以多种格式显示 sar 收集的数据)。
  3. mpstat(报告处理器相关统计数据)。
  4. iostat(报告设备和分区的CPU统计信息和I/O统计信息)。
  5. pidstat(Linux 任务的报告统计信息)。
  6. nfsiostat(报告 NFS 的输入/输出统计信息)。
  7. cifsiostat(报告 CIFS 统计信息)和
  8. sa1(收集并存储系统活动每日数据文件中的二进制数据。
  9. sa2(在/var/log/sa目录中写入每日报告)工具。

dstat为这些工具提供的功能添加了一些额外的功能,以及更多的计数器和灵活性。您可以通过分别运行 yum info sysstatyum info dstat 找到每个工具的总体描述,或者在安装后检查各个手册页。

要安装这两个包:


yum update && yum install sysstat dstat

sysstat的主要配置文件是/etc/sysconfig/sysstat。您将在该文件中找到以下参数:


How long to keep log files (in days).
If value is greater than 28, then log files are kept in
multiple directories, one for each month.
HISTORY=28
Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
Parameters for the system activity data collector (see sadc manual page)
which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
Compression program to use.
ZIP="bzip2"

安装 sysstat 后,会在 /etc/cron.d/sysstat 中添加并启用两个 cron 作业。第一个作业每 10 分钟运行一次系统活动统计工具,并将报告存储在 /var/log/sa/saXX 中,其中 XX 是该月的某一天。

因此,/var/log/sa/sa05 将包含该月 5 日以来的所有系统活动报告。假设我们使用上面配置文件中 HISTORY 变量的默认值:


*/10 * * * * root /usr/lib64/sa/sa1 1 1

第二个作业每天下午 11:53 生成流程记账的每日摘要,并将其存储在 /var/log/sa/sarXX 文件中,其中 XX 与前面的示例具有相同的含义:


53 23 * * * root /usr/lib64/sa/sa2 -A

例如,您可能希望将本月 6 日 上午 9:30 到下午 下午 5:30 的系统统计信息输出到 .csv > 可以使用 LibreOffice CalcMicrosoft Excel 轻松查看的文件(此方法还允许您创建图表或图形):


sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

您也可以在上面的 sadf 命令中使用 -j 标志而不是 -d 来以 JSON 格式输出系统统计信息 格式,例如,如果您需要在 Web 应用程序中使用数据,该格式可能会很有用。

最后,让我们看看 dstat 能提供什么。请注意,如果不带参数运行,dstat 默认情况下假定 -cdngy(分别是 CPU、磁盘、网络、内存页面和系统统计信息的缩写),并添加一个每秒一行(可以随时使用 Ctrl + C 中断执行):


dstat

要将统计信息输出到 .csv 文件,请使用 –output 标志,后跟文件名。让我们看看它在 LibreOffice Calc 上的样子:

我强烈建议您查看 PDF 格式的 dstat 手册页和 sysstat 手册页,以方便阅读。您会发现其他几个选项可帮助您创建自定义且详细的系统活动报告。

不要错过: Sysstat – Linux 使用活动监控工具

概括

在本指南中,我们解释了如何使用本机 Linux 工具和 RHEL 7 提供的特定实用程序来生成系统利用率报告。在某一时刻,您会像最好的朋友一样依赖这些报告。

您可能会使用我们在本教程中未介绍的其他工具。如果是这样,请随时使用下面的表格与社区其他成员分享它们以及您可能有的任何其他建议/问题/评论。

我们期待您的回音。