Sysstat 时间选项和命令差异

Sysstat 时间选项和命令差异

我想跟踪 Ubuntu 20.04 机器上的 CPU 和内存总使用情况。为此,我将安装 sysstat 库。我阅读了相关函数的手册和帖子sar,但仍然对语法感到困惑。

我想做的事:每五秒记录一次 CPU 和内存总使用情况。每天将数据导出为 CSV 一次并删除二进制数据。

是什么让我困惑: 1. 有多种指定时间间隔的设置。sar -u %system -r %memused 5每五秒记录一次 CPU 和内存使用情况。最重要的是,该包每十分钟生成一次“活动报告”,如5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1中所定义/etc/cron.d/sysstat。我对每五秒发生的事情和每十分钟发生的事情感到困惑。程序是否首先每五秒缓存一次数据,然后每十分钟将其写入文件? 2. 多种函数写入磁盘。我需要其中哪一个?sar -u %system -r %memused -o 5sadc -u %system -r %memused 5 -, 或者sa1? 3. 我是否需要将生成每日 CSV 文件 ( ) 的代码sadf -d /var/log/sysstat/sa$(date +%d -d yesterday) > /home/some_user/sar_data.csv作为计时作业执行?

附带说明:如果有人知道比 sysstat 方法计算效率更高的解决方案,请随时提出建议。

答案1

  1. 5-55/10在 5、15、25、35、45 和 55 秒运行命令。
  2. debian-sa1 1 1所以debian-sa1 [ interval [ count ] ]它会收集一次一秒钟。

在你的sar命令中你没有数数所以它会累积5秒直到停止。

虽然它会显着增加日志大小和 CPU 使用率,因为 计划任务(8)每分钟检查一次 cron 条目,.

   The time and date fields are:

          field          allowed values
          -----          --------------
          minute         0-59
          hour           0-23
          day of month   1-31
          month          1-12 (or names, see below)
          day of week    0-7 (0 or 7 is Sunday, or use names) 

由于如果作业运行时间比启动间隔时间长,cron 就会遇到严重问题,因此不安全只需将 cron 条目调整为:

*/1 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 10 5

或者:

*/1 * * * * root for i in `seq 1 5` ; do debian-sa1 1 1 ; sleep 10 ; done

但这样做作为测试可能会显示该选项将占用多少 CPU 时间和磁盘空间。但第二个命令的影响会稍微小一些,因为它只收集 10 秒中的 1 秒。

但上述任一日志文件的大小都相似。

由于两者都不systatcron针对该收集频率而设计的,因此不要期望上述粒度具有高稳定性。

相关内容