大多数 Linux 管理员使用 SAR 报告 监控系统性能, 因为它会收集一周的性能数据. 但是, 你可以通过更改 /etc/sysconfig/sysstat 文件轻松地将其延长到四周. 同样, 这段时间可以延长一个月以上. 如果超过 28, 那么日志文件将放在多个目录中, 每月一个.
要将覆盖期延长至 28 天, 请对 /etc/sysconfig/sysstat 文件做以下更改.
编辑 sysstat 文件并将 HISTORY=7 更改为 HISTORY=28 .
在本文中, 我们添加了三个 bash 脚本, 它们可以帮助你在一个地方轻松查看每个数据文件的平均值.
这些脚本简单明了. 出于测试目的, 我们仅包括两个性能指标, 即 CPU 和内存. 你可以修改脚本中的其他性能指标以满足你的需求.
脚本 1: 从 SAR 报告中获取平均 CPU 利用率的 Bash 脚本
该 bash 脚本从每个数据文件中收集 CPU 平均值并将其显示在一个页面上.
由于是月末, 它显示了 2019 年 8 月的 28 天数据.
- # vi /opt/scripts/sar-CPU-avg.sh
- #!/bin/sh
- echo "+----------------------------------------------------------------------------------+"
- echo "|Average: CPU %user %nice %system %iowait %steal %idle |"
- echo "+----------------------------------------------------------------------------------+"
- for file in `ls -tr /var/log/sa/sa* | grep -v sar`
- do
- dat=`sar -f $file | head -n 1 | awk '{print $4}'`
- echo -n $dat
- sar -f $file| grep -i Average | sed "s/Average://"
- done
- echo "+----------------------------------------------------------------------------------+"
运行脚本后, 你将看到如下输出.
- #sh/opt/scripts/sar-CPU-avg.sh
- +----------------------------------------------------------------------------------+
- |Average:CPU%user%nice %system%iowait%steal%idle|
- +----------------------------------------------------------------------------------+
- 08/01/2019all0.70 0.00 1.19 0.00 0.00 98.10
- 08/02/2019all1.73 0.00 3.16 0.01 0.00 95.10
- 08/03/2019all1.73 0.00 3.16 0.01 0.00 95.11
- 08/04/2019all1.02 0.00 1.80 0.00 0.00 97.18
- 08/05/2019all0.68 0.00 1.08 0.01 0.00 98.24
- 08/06/2019all0.71 0.00 1.17 0.00 0.00 98.12
- 08/07/2019all1.79 0.00 3.17 0.01 0.00 95.03
- 08/08/2019all1.78 0.00 3.14 0.01 0.00 95.08
- 08/09/2019all1.07 0.00 1.82 0.00 0.00 97.10
- 08/10/2019all0.38 0.00 0.50 0.00 0.00 99.12
- .
- .
- .
- 08/29/2019all1.50 0.00 2.33 0.00 0.00 96.17
- 08/30/2019all2.32 0.00 3.47 0.01 0.00 94.20
- +----------------------------------------------------------------------------------+
脚本 2: 从 SAR 报告中获取平均内存利用率的 Bash 脚本
该 bash 脚本从每个数据文件中收集内存平均值并将其显示在一个页面上.
由于是月末, 它显示了 2019 年 8 月的 28 天数据.
- # vi /opt/scripts/sar-memory-avg.sh
- #!/bin/sh
- echo "+-------------------------------------------------------------------------------------------------------------------+"
- echo "|Average: kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty |"
- echo "+-------------------------------------------------------------------------------------------------------------------+"
- for file in `ls -tr /var/log/sa/sa* | grep -v sar`
- do
- dat=`sar -f $file | head -n 1 | awk '{print $4}'`
- echo -n $dat
- sar -r-f $file| grep -i Average | sed "s/Average://"
- done
- echo "+-------------------------------------------------------------------------------------------------------------------+"
运行脚本后, 你将看到如下输出.
- #sh/opt/scripts/sar-memory-avg.sh
- +--------------------------------------------------------------------------------------------------------------------+
- |Average:kbmemfree kbmemused%memused kbbuffers kbcached kbcommit%commit kbactive kbinact kbdirty|
- +--------------------------------------------------------------------------------------------------------------------+
- 08/01/2019 1492331 2388461 61.55 29888 1152142 1560615 12.72 1693031 380472 6
- 08/02/2019 1493126 2387666 61.53 29888 1147811 1569624 12.79 1696387 373346 3
- 08/03/2019 1489582 2391210 61.62 29888 1147076 1581711 12.89 1701480 370325 3
- 08/04/2019 1490403 2390389 61.60 29888 1148206 1569671 12.79 1697654 373484 4
- 08/05/2019 1484506 2396286 61.75 29888 1152409 1563804 12.75 1702424 374628 4
- 08/06/2019 1473593 2407199 62.03 29888 1151137 1577491 12.86 1715426 371000 8
- 08/07/2019 1467150 2413642 62.19 29888 1155639 1596653 13.01 1716900 372574 13
- 08/08/2019 1451366 2429426 62.60 29888 1162253 1604672 13.08 1725931 376998 5
- 08/09/2019 1451191 2429601 62.61 29888 1158696 1582192 12.90 1728819 371025 4
- 08/10/2019 1450050 2430742 62.64 29888 1160916 1579888 12.88 1729975 370844 5
- .
- .
- .
- 08/29/2019 1365699 2515093 64.81 29888 1198832 1593567 12.99 1781733 376157 15
- 08/30/2019 1361920 2518872 64.91 29888 1200785 1595105 13.00 1784556 375641 8
- +-------------------------------------------------------------------------------------------------------------------+
脚本 3: 从 SAR 报告中获取 CPU 和内存平均利用率的 Bash 脚本
该 bash 脚本从每个数据文件中收集 CPU 和内存平均值并将其显示在一个页面上.
该脚本与上面相比稍微不同. 它在同一位置同时显示两者 (CPU 和内存) 平均值, 而不是其他数据.
- # vi /opt/scripts/sar-CPU-mem-avg.sh
- #!/bin/bash
- for file in `ls -tr /var/log/sa/sa* | grep -v sar`
- do
- sar -f $file| head -n1 |awk'{print $4}'
- echo "-----------"
- sar -u-f $file|awk'/Average:/{printf("CPU Average: %.2f%\n"), 100 - $8}'
- sar -r-f $file|awk'/Average:/{printf("Memory Average: %.2f%\n"),(($3-$5-$6)/($2+$3)) * 100 }'
- printf "\n"
- done
运行脚本后, 你将看到如下输出.
- #sh/opt/scripts/sar-CPU-mem-avg.sh
- 08/01/2019
- -----------
- CPU Average: 1.90%
- Memory Average: 31.09%
- 08/02/2019
- -----------
- CPU Average: 4.90%
- Memory Average: 31.18%
- 08/03/2019
- -----------
- CPU Average: 4.89%
- Memory Average: 31.29%
- 08/04/2019
- -----------
- CPU Average: 2.82%
- Memory Average: 31.24%
- 08/05/2019
- -----------
- CPU Average: 1.76%
- Memory Average: 31.28%
- .
- .
- .
- 08/29/2019
- -----------
- CPU Average: 3.83%
- Memory Average: 33.15%
- 08/30/2019
- -----------
- CPU Average: 5.80%
- Memory Average: 33.19%
来源: http://www.tuicool.com/articles/zUVvE3M