Nfs

如何查詢 sar(sysstat) 超過一天的數據點

  • February 28, 2018
  1. 我沒有看到“sar”命令接受日期和時間作為開始時間(-s)或結束時間(-e)而不僅僅是時間。那麼,如何使用較舊的日期和時間查詢“sar”以獲取超過一天的數據點(-f 在這裡沒有幫助)。‘sar’ 命令的輸出也應該具有數據點的日期值 - 而不是僅以小時和分鐘為單位的時間。
  2. 我看到 sysstat 每天都在拆分 pa 數據文件。是否可以修改預設的 sysstat cron 條目以每週在單個 pa 文件中收集 sysstat(sa1/sa2) 數據。

系統統計配置:

cat /etc/sysconfig/sysstat
# sysstat-9.0.4 configuration file.

# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=7

# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=10

# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"

sysstat cron 條目:

cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

你不能直接這樣做。sar(systat) 和朋友們基本上僅限於日常記錄。來自“sadc.c”(在 sysstat-11.7.2 中):

485 void setup_file_hdr(int fd)
486 {
...
507     file_hdr.sa_day         = rectime.tm_mday;
508     file_hdr.sa_month       = rectime.tm_mon;
509     file_hdr.sa_year        = rectime.tm_year;

所以文件頭只包含一天。

有點令人信服的是個人記錄的格式。來自“sa.h”:

604 struct record_header {
...
617     /*
618      * Timestamp: Hour (0-23), minute (0-59) and second (0-59).
619      * Used to determine TRUE time (immutable, non locale dependent time).
620      */
621     unsigned char hour;
622     unsigned char minute;
623     unsigned char second;

但是,該結構還包含 1/100 秒內的機器正常執行時間和自紀元以來的秒數。我必須做更多的工作來看看這些值是如何使用的(我不會這樣做),所以這更多的是一個提示而不是證明。

引用自:https://unix.stackexchange.com/questions/425317