![查找 Linux 中过去 2 个月的 CPU 利用率](https://linux22.com/image/1330230/%E6%9F%A5%E6%89%BE%20Linux%20%E4%B8%AD%E8%BF%87%E5%8E%BB%202%20%E4%B8%AA%E6%9C%88%E7%9A%84%20CPU%20%E5%88%A9%E7%94%A8%E7%8E%87.png)
我正在尝试找到一种方法来获取过去 2 个月的 CPU 利用率。我尝试使用 sar。我发现 sar 可以收集和报告 CPU 利用率,它是通过 sysstat 实用程序安装的。安装后,/usr/lib64/sa/sa1 目录将“历史”引用存储在 /var/log/sa/sadd 目录中,其中 dd = 月份中的日期。您可以在 cron.d/sysstat 文件中设置指定的参数。对我来说,它看起来像这样:
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
然后 /usr/lib64/sa/sa2 在 /var/log/sa/sadd 目录中创建每日报告。对我来说,sa2 如下所示:
#!/bin/sh
# /usr/lib64/sa/sa2.sh
# (C) 1999-2006 Sebastien Godard (sysstat <at> wanadoo.fr)
#
# Changes:
# - 2004-01-22 Nils Philippsen <[email protected]>
# make history configurable
#
HISTORY=7
[ -r /etc/sysconfig/sysstat ] && . /etc/sysconfig/sysstat
[ ${HISTORY} -gt 25 ] && HISTORY=25
S_TIME_FORMAT=ISO ; export S_TIME_FORMAT
umask 0022
DATE=`date +%d`
RPT=/var/log/sa/sar${DATE}
ENDIR=/usr/bin
DFILE=/var/log/sa/sa${DATE}
[ -f "$DFILE" ] || exit 0
cd ${ENDIR}
${ENDIR}/sar $* -f ${DFILE} > ${RPT}
find /var/log/sa \( -name 'sar??' -o -name 'sa??' \) -mtime +"${HISTORY}" -exec rm -f {} \;
这仅设置为具有 7 天的历史记录。我想我的问题是:有没有办法使用 sar 获取过去 2 个月的 CPU 统计数据,或者有没有更好的方法?在我看来,我可能只能访问过去 7 天的统计数据。
答案1
如果您更改为 HISTORY=60,那么它应该可以保留大约 2 个月的价值。