我想跟踪Ubuntu20.04机器上的总CPU和内存使用情况。为此,我将安装sysstat库。我阅读了关于sar和相关函数的手册和文章,但仍然对语法感到困惑。
我想做的是:每5秒记录一次CPU和内存的使用情况。每天将数据作为CSV导出一次,并删除二进制数据。
让我困惑的是: 1.有多个设置指定时间间隔。sar -u %system -r %memused 5每5秒记录一次CPU和内存的使用情况。除此之外,按照5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1在/etc/cron.d/sysstat中的定义,包每十分钟生成一次“活动报告”。我对每5秒发生一次和每十分钟发生一次感到困惑。程序首先每5秒钟缓存一次数据,然后每10分钟将其写入文件中吗? 2.多个函数写入磁盘。我需要哪一个?sar -u %system -r %memused -o 5,sadc -u %system -r %memused 5 -,还是sa1?3.是否需要执行生成日常CSV文件(sadf -d /var/log/sysstat/sa$(date +%d -d yesterday) > /home/some_user/sar_data.csv)的代码作为chron作业?
顺便提一句:如果有人知道比这个sysstat方法在计算上更有效的解决方案,可以随意提出。
发布于 2021-07-18 16:17:05
5-55/10以5,15,25,35,45和55秒的速度运行命令。debian-sa1 1 1是debian-sa1 [ interval [ count ] ],所以它会收集一秒钟。在您的sar命令中,您没有计数,因此它将累积5秒直到停止。
当cron(8)每分钟检查cron条目时,它将显著增加日志大小和CPU使用量,
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秒。
但是,对于上述任何一个,日志文件的大小都是相同的。
由于systat和cron都不是为这种频率而设计的,所以不期望上面的粒度具有很高的稳定性。
https://unix.stackexchange.com/questions/658870
复制相似问题