如何在 Centos 上使用 Sysstat 监控系统
在此页
- 在 CentOS 上安装 Sysstat
- 使用 Sysstat 系统监视器
系统管理员的一项常见任务是监视和维护服务器。这在瞬间通知时很容易做到,但是如何随着时间的推移记录这些信息呢?监控服务器的一种方法是使用 Sysstat 包。
Sysstat 实际上是一组实用程序,旨在收集有关 Linux 安装性能的信息并随时间记录它们。
它也很容易安装,因为它作为一个包包含在许多发行版中。
在 CentOS 上安装 Sysstat
要在 Centos 6 或 CentOS 7 上安装 Sysstat,只需键入以下命令:
yum install sysstat
使用 Sysstat 系统监视器
我们现在已经在系统上安装了 sysstat 脚本。让我们试试 sar 命令。
sar
11:00:02 AM CPU %user %nice %system %iowait %idle
11:10:01 AM all 0.00 0.00 0.00 0.00 99.99
Average: all 0.00 0.00 0.00 0.00 99.99
报告了一些信息,例如 Linux 内核、主机名和日期。
更重要的是,显示了 CPU 时间在系统上花费的各种方式。
%user, %nice, %system 、%iowait 和 %idle 描述了 CPU 的使用方式。
%user 和 %nice 指的是您的软件程序,例如 MySQL 或 Apache。
%system 指的是内核的内部工作.
%iowait 是等待输入/输出所花费的时间,例如磁盘读取或写入。最后,由于内核占用了它可以调度的可运行时间的 100%,因此任何未使用的时间都会进入 %idle。
以上信息每隔 1 秒显示一次。我们如何随着时间的推移跟踪这些信息?
如果我们的系统在 %iowait 中一直运行很重,我们可能会推测磁盘过载或变坏。
至少,我们知道要进行调查.
那么我们如何随着时间的推移跟踪信息呢?我们可以安排 sar 定期运行,比如每 10 分钟一次。
然后我们指示它将输出发送到 sysstat 的特殊日志文件以供以后报告。
执行此操作的方法是使用Cron 守护进程。
通过在 /etc/cron.d 中创建一个名为 sysstat 的文件,我们可以告诉 cron 每天运行 sar。
幸运的是,yum 安装的 Systat 包已经为我们完成了这一步。
more /etc/cron.d/sysstat
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A
sa1 脚本将 sar 输出记录到 sysstat 的二进制日志文件格式中,sa2 以人类可读的格式将其报告回来。
报告被写入 /var/log/sa 中的文件。
ls /var/log/sa
sa17 sar17
sa17 是二进制 sysstat 日志,sar17 是报告。 (今天是17号)
sar 报告中包含相当多的信息,但有几个值可以告诉我们服务器的繁忙程度。
要注意的值是交换使用情况、磁盘 IO 等待和运行队列。
这些可以通过手动运行 sar 获得,这将报告这些值。
sar
11:00:02 AM CPU %user %nice %system %iowait %idle
11:10:01 AM all 0.00 0.00 0.00 0.00 99.99
11:20:01 AM all 0.00 0.00 0.00 0.00 100.00
11:30:02 AM all 0.01 0.26 0.19 1.85 97.68
11:39:20 AM all 0.00 2.41 2.77 0.53 94.28
11:40:01 AM all 1.42 0.00 0.18 3.24 95.15
Average: all 0.03 0.62 0.69 0.64 98.02
有一段时间 %iowait 列中的磁盘活动很高,但这种情况并没有持续太久。平均 0.64 已经很不错了。
我的交换空间使用情况如何,我的内存用完了吗?被换出对于 Linux 内核来说是正常的,它会时不时地换出。不断交换是不好的,通常意味着你需要更多的内存。
sar -W
11:00:02 AM pswpin/s pswpout/s
11:10:01 AM 0.00 0.00
11:20:01 AM 0.00 0.00
11:30:02 AM 0.00 0.00
11:39:20 AM 0.00 0.00
11:40:01 AM 0.00 0.00
11:50:01 AM 0.00 0.00
Average: 0.00 0.00
不,我们看起来不错。没有发生持久交换。
系统负载如何?我的进程是否等待太长时间无法在 CPU 上运行?
sar -q
11:00:02 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
11:10:01 AM 0 47 0.00 0.00 0.00
11:20:01 AM 0 47 0.00 0.00 0.00
11:30:02 AM 0 47 0.28 0.21 0.08
11:39:20 AM 0 45 0.01 0.24 0.17
11:40:01 AM 0 46 0.07 0.22 0.17
11:50:01 AM 0 46 0.00 0.02 0.07
Average: 0 46 0.06 0.12 0.08
不,0.06 的平均负载确实不错。请注意,右侧有 1、5 和 15 分钟的间隔。通过三个时间间隔,您可以了解系统承载的负载量。 1 分钟平均值为 3 或 4 是可以的,但 15 分钟列中的相同数字可能表明工作没有清理干净,需要仔细观察。
这是对 Sysstat 包的简要介绍。
我们只查看了 sar 的三个属性的输出,但还有其他属性。现在,在您的工具箱中配备了 sar,您的系统管理工作就变得简单了一些。