RHCE 系列(三):如何使用 Linux 工具集生成和发送系统活动报告

作为一个系统工程师,你经常需要生成一些显示系统资源利用率的报告,以便确保:1)正在合理利用系统,2)防止出现瓶颈,3)确保可扩展性,以及其它原因。

RHCE 第三部分:监视 Linux 性能活动报告

除了著名的用于检测磁盘、内存和 CPU 使用率的原生 Linux 工具 - 可以给出很多例子,红帽企业版 Linux 7 还提供了另外两个可以为你的报告更多数据的工具套装:sysstat 和 dstat。

在这篇文章中,我们会介绍两者,但首先让我们来回顾一下传统工具的使用。

原生 Linux 工具

使用 df,你可以报告磁盘空间以及文件系统的 inode 使用情况。你需要监视这两者,因为缺少磁盘空间会阻止你保存更多文件(甚至会导致系统崩溃),就像耗尽 inode 意味着你不能将文件链接到对应的数据结构,从而导致同样的结果:你不能将那些文件保存到磁盘中。


  1. # df -h [以人类可读形式显示输出]
  2. # df -h --total [生成总计]

检查 Linux 总的磁盘使用


  1. # df -i [显示文件系统的 inode 数目]
  2. # df -i --total [生成总计]

检查 Linux 总的 inode 数目

用 du,你可以估计文件、目录或文件系统的文件空间使用。

举个例子,让我们来看看 /home 目录使用了多少空间,它包括了所有用户的个人文件。第一条命令会返回整个 /home 目录当前使用的所有空间,第二条命令会显示子目录的分类列表:


  1. # du -sch /home
  2. # du -sch /home/*

检查 Linux 目录磁盘大小

别错过了:

另一个你工具集中不容忽视的工具就是 vmstat。它允许你查看进程、CPU 和 内存使用、磁盘活动以及其它的大概信息。

如果不带参数运行,vmstat 会返回自从上一次启动后的平均信息。尽管你可能以这种方式使用该命令有一段时间了,再看一些系统使用率的例子会有更多帮助,例如在例子中定义了时间间隔。

例如


  1. # vmstat 5 10

会每个 5 秒返回 10 个事例:

检查 Linux 系统性能

正如你从上面图片看到的,vmstat 的输出分为很多列:proc(process)、memory、swap、io、system、和 CPU。每个字段的意义可以在 vmstat man 手册的 FIELD DESCRIPTION 部分找到。

在哪里 vmstat 可以派上用场呢?让我们在 yum 升级之前和升级时检查系统行为:


  1. # vmstat -a 1 5

Vmstat Linux 性能监视

请注意当磁盘上的文件被更改时,活跃内存的数量增加,写到磁盘的块数目(bo)和属于用户进程的 CPU 时间(us)也是这样。

或者直接保存一个大文件到磁盘时(由 dsync 标志引发):


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

Vmstat Linux 磁盘性能监视

在这个例子中,我们可以看到大量的块被写入到磁盘(bo),这正如预期的那样,同时 CPU 处理任务之前等待 IO 操作完成的时间(wa)也增加了。

别错过: Vmstat – Linux 性能监视

其它 Linux 工具

正如本文介绍部分提到的,这里有其它的工具你可以用来检测系统状态和利用率(不仅红帽,其它主流发行版的官方支持库中也提供了这些工具)。

sysstat 软件包包含以下工具:

  • sar (收集、报告、或者保存系统活动信息)。
  • sadf (以多种方式显示 sar 收集的数据)。
  • mpstat (报告处理器相关的统计信息)。
  • iostat (报告 CPU 统计信息和设备以及分区的 IO统计信息)。
  • pidstat (报告 Linux 任务统计信息)。
  • nfsiostat (报告 NFS 的输出/输出统计信息)。
  • cifsiostat (报告 CIFS 统计信息)
  • sa1 (收集并保存二进制数据到系统活动每日数据文件中)。
  • sa2 (在 /var/log/sa 目录写入每日报告)。

dstat 比这些工具所提供的功能更多一些,并且提供了更多的计数器和更大的灵活性。你可以通过运行 yum info sysstat 或者 yum info dstat 找到每个工具完整的介绍,或者安装完成后分别查看每个工具的 man 手册。

安装两个软件包:


  1. # yum update && yum install sysstat dstat

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


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

sysstat 安装完成后,/etc/cron.d/sysstat 中会添加和启用两个 cron 任务。第一个任务每 10 分钟运行系统活动计数工具,并在 /var/log/sa/saXX 中保存报告,其中 XX 是该月的一天。

因此,/var/log/sa/sa05 会包括该月份第 5 天所有的系统活动报告。这里假设我们在上面的配置文件中对 HISTORY 变量使用默认的值:


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

第二个任务在每天夜间 11:53 生成每日进程计数总结并把它保存到 /var/log/sa/sarXX 文件,其中 XX 和之前例子中的含义相同:


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

例如,你可能想要输出该月份第 6 天从上午 9:30 到晚上 5:30 的系统统计信息到一个 LibreOffice Calc 或 Microsoft Excel 可以查看的 .csv 文件(这样就可以让你创建表格和图片了):


  1. # 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 应用中使用这些数据的时候非常有用。

Linux 系统统计信息

最后,让我们看看 dstat 提供什么功能。请注意如果不带参数运行,dstat 默认使用 -cdngy(表示 CPU、磁盘、网络、内存页、和系统统计信息),并每秒添加一行(可以在任何时候用 Ctrl + C 中断执行):


  1. # dstat

Linux 磁盘统计检测

要输出统计信息到 .csv 文件,可以用 -output 标记后面跟一个文件名称。让我们来看看在 LibreOffice Calc 中该文件看起来是怎样的:

检测 Linux 统计信息输出

为了更多的阅读体验,我强烈建议你查看 dstat 和 sysstat 的 pdf 格式 man 手册。你会找到其它能帮助你创建自定义的详细系统活动报告的选项。

别错过: Sysstat – Linux 的使用活动检测工具

总结

在该指南中我们解释了如何使用 Linux 原生工具以及 RHEL 7 提供的特定工具来生成系统使用报告。在某种情况下,你可能像依赖最好的朋友那样依赖这些报告。

本文来自合作伙伴“Linux中国”,原文发布日期:2015-11-03

时间: 2024-10-03 22:16:29

RHCE 系列(三):如何使用 Linux 工具集生成和发送系统活动报告的相关文章

三万元搭建LINUX服务器集群

1.什么是服务器集群 随着Internet的爆炸性增长,Internet与人的生活越来越息息相关,通过Internet上进行交易也就越来越受关注.近几年,电子商务的年增长均超过100%.服务器的工作量也迅速增长,所以服务器(特别是一个受人欢迎的WEB服务器)很容易在访问高峰时期过载. 而另一方面,计算机从1946年单纯的科学计算任务到现在大量纷繁复杂的http://www.aliyun.com/zixun/aggregation/7394.html">信息处理,工作量越来越大,需要越来越快

Linux工具集taskset的语法及示例

语法: taskset [options] mask command [arg]... taskset [options] -p [mask] pid 参数: -a, --all-tasks 操作所有的任务线程 -p, --pid 操作已存在的pid -c, --cpu-list 通过列表显示方式设置CPU(逗号相隔) 实例: 指定PID为9588的进程在CPU0上运行: taskset -pc 0 9588 pid 9588's current affinity list: 0,1 pid 9

RHCE 系列(一):如何设置和测试静态网络路由

RHCE(Red Hat Certified Engineer,红帽认证工程师)是红帽公司的一个认证,红帽向企业社区贡献开源操作系统和软件,同时它还给公司提供训练.支持和咨询服务. RHCE 考试准备指南 这个 RHCE 是一个绩效考试(代号 EX300),面向那些拥有更多的技能.知识和能力的红帽企业版 Linux(RHEL)系统高级系统管理员. 重要: 获得RHCE 认证前需要先有 红帽认证系统管理员认证Red Hat Certified System Administrator,RHCSA.

RHCE 系列(四): 使用 Shell 脚本自动化 Linux 系统维护任务

之前我听说高效的系统管理员的一个特点是懒惰.一开始看起来很矛盾,但作者接下来解释了其中的原因: RHCE 系列:第四部分 - 自动化 Linux 系统维护任务 如果一个系统管理员花费大量的时间解决问题以及做重复的工作,你就应该怀疑他这么做是否正确.换句话说,一个高效的系统管理员/工程师应该制定一个计划使得其尽量花费少的时间去做重复的工作,以及通过使用本系列中第三部分 使用 Linux 工具集监视系统活动报告 介绍的工具来预见问题.因此,尽管看起来他/她没有做很多的工作,但那是因为 shell 脚

RHCE 系列(七):在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器

RHCE 系列(七):在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器 在本系列的前一篇文章,我们回顾了如何在可能包括多种类型操作系统的网络上配置 Samba 共享.现在,如果你需要为一组类 Unix 客户端配置文件共享,很自然的你会想到网络文件系统,或简称 NFS. RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服务器 在这篇文章中我们会介绍配置基于 Kerberos 身份验证的 NFS 共享的整个流程.假设你已经配置好了一个 N

RHCE 系列(六):安装 Samba 并配置 Firewalld 和 SELinux,和 Windows 共享文件

由于计算机很少作为一个独立的系统工作,作为一个系统管理员或工程师,就应该知道如何在有多种类型的服务器之间搭设和维护网络. 在本篇以及该系列后面的文章中,我们会介绍用 Windows/Linux 配置 Samba 和 NFS 服务器以及 Linux 客户端. RHCE 系列第六部分 - 设置 Samba 文件共享 如果有人让你设置文件服务器用于协作或者配置很可能有多种不同类型操作系统和设备的企业环境,这篇文章就能派上用场. 由于你可以在网上找到很多关于 Samba 和 NFS 背景和技术方面的介绍

工欲善其事必先利其器(大数据分析工具集)

大数据时代需要大数据挖掘,我习惯把大数据分成四个领域:数据科学.网络科学.空间地理科学和可视化技术; 最近的主要兴趣在空间地理领域,学习如何获取POI,Polygon,经纬度,空间匹配算法和可视化,一个全新领域有带来诸多大数据分析工具的思考和整合. 恰巧看到一篇国外博客列举了大数据领域的分析工具,俺的微信公号也曾经写过两篇: 数据工匠 | 工欲善其事必先利其器(数据分析工具集一) 数据工匠 | 工欲善其事必先利其器(数据分析工具集二) 今天就接着把数据分析主要是大数据挖掘的工具集三写下来: 顺势

Common Gui Tools 1.1,Java GUI实用小工具集

Common Gui Tools Common Gui Tools 是用java编写,GUI界面的实用小工具集,1.1版有13个小工具: 1,编码转换:Character Converter 2,加密解密:Encrypt And Decrypt 3,计算文件数字签名:File Digital Signature,支持大文件 4,正则表达式验证:Regex Tester 5,执行Script脚本:Run Script 6,文件(夹)查找操作:Folder And File Operate 7,An

系列二VS项目软件配置工具介绍

原文:系列二VS项目软件配置工具介绍 Svn和VisualSvn介绍      在使用TortoiseSvn(SVN客户端)+ AnkhSvn(VS2008插件) +VisualSvn Server(版本控制服务器)进行源代码版本控制前,有必要先了解下Subversion(Svn).     Svn(Subversion)是近年来崛起的版本管理工具,是CVS的接班人.目前,绝大多数开源软件都使用Svn作为代码版本管理软件.      Svn客户端: Subversion的客户端有两类,一类是we