- 날짜와 시간을 시간뿐만 아니라 시작 시간(-s) 또는 종료 시간(-e)으로 받아들이는 "sar" 명령이 표시되지 않습니다. 그렇다면 "sar"를 쿼리하여 하루보다 오래된 날짜와 시간을 가진 데이터 포인트를 얻으려면 어떻게 해야 합니까(-f는 여기서는 도움이 되지 않습니다). "sar" 명령의 출력에는 시간과 분 단위의 시간뿐만 아니라 데이터 포인트의 날짜 값도 있어야 합니다.
- sysstat가 pa 데이터 파일을 매일 분할하는 것을 봤습니다. 단일 pa 파일에서 매주 sysstat(sa1/sa2) 데이터를 수집하도록 기본 sysstat cron 항목을 수정할 수 있습니까?
시스템 상태 구성:
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
답변1
이 작업을 직접 수행할 수는 없습니다. 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초 단위의 기계 가동 시간과 에포크 이후 경과된 시간(초)도 포함되어 있습니다. 값이 어떻게 사용되는지 확인하려면 더 많은 작업을 수행해야 하므로(이 작업은 수행하지 않음) 이는 증거라기보다는 힌트에 가깝습니다.