| HOME / 정보공유 / AIX 명령어 모음

sar
sar sar 명령 목적 시스템 활동 정보를 수집, 보고 또는 저장합니다. 구문
/usr/sbin/sar [ { -A | [ -a ] [ -b ] [ -c ] [ -d ][ -k ] [ -m ] [ -q ] [ -r ] [ -u ] [ -V ] [ -v ] [ -w ] [ -y ] } ] [ -P ProcessorIdentifier, ... | ALL ] [ -ehh [ :mm [ :ss ] ] ] [ -fFile ] [ -iSeconds ] [ -oFile ] [ -shh [ :mm [ :ss ] ] ] [ Interval [ Number ] ]
설명
sar 명령은 운영 시스템의 누적 활동 계수기 내용을 표준 출력에 기록합니다. Number 및 Interval 매개변수에 있는 값을 기준으로 사용통계 시스템은 초 단위로 지정된 간격마다 지정된 횟수만큼 정보를 기록합니다. Number 매개변수에 대한 디폴트 간격은 1초입니다. 수집된 데이터는 -oFile 플래그에 의해 지정된 파일에 저장할 수 있습니다.
sar 명령은 파일에 이미 저장되어 있는 레코드를 발췌하여 표준 출력에 기록합니다. 이 파일은 -f 플래그가 지정한 파일 또는 디폴트로 표준 시스템 활동 일별 데이터 파일, /var/adm/sa/sadd 파일이 될 수 있습니다. 여기서 dd 매개변수는 현재 날짜를 나타냅니다.
sar 명령은 -P 플래그를 지정하지 않으면 퍼센트로, 그렇지 않으면 합계로 표시한 값의 평균으로 계산되는 시스템 전반적인(모든 프로세서에 대해서) 통계를 보고합니다. -P 플래그가 지정되면, sar 명령은 지정된 프로세서 또는 프로세서들과 관련된 활동을 보고합니다. -P ALL이 지정되는 경우, sar 명령은 각 개별 프로세서에 대한 통계와 시스템 통계를 보고합니다.
플래그를 사용하여 특수 시스템 활동에 대한 정보를 선택할 수 있습니다. 플래그를 지정하면 시스템 단위 장치 활동만 선택됩니다. -A 플래그를 지정하면 모든 활동이 선택됩니다.
sar 명령의 디폴트 버전(CPU 활용 보고서)은 주 시스템 자원을 모니터하기 때문에 시스템 활동 조사를 시작하기 위해 사용자가 수행하는 최초 기능 중 하나가 될 수 있습니다. CPU 활용이 거의 100 퍼센트(사용자 + 시스템)가 될 경우, 표본 작업부하는 CPU 바운드입니다. I/O 대기에서 상당한 시간의 퍼센트를 소비하면 CPU 실행이 디스크 I/O를 기다리면서 블록된다는 것을 의미합니다. I/O는 파일 액세스에 필요하거나 메모리 부족으로 인한 페이징과 관련된 입출력이 될 수 있습니다.
주: 시스템이 원격 파일 액세스를 기다리는 데 소비하는 시간은 I/O 대기 시간에 누적되지 않습니다. CPU 활용 및 타스크를 위한 I/O 대기 시간이 비교적 적고 응답 시간이 충분하지 않으면 원격 I/O를 위해 대기하는 시간의 양을 조사하십시오. 원격 I/O 대기 통계를 제공하는 고급 명령은 없으므로 이를 관찰하는 데는 추적 데이터가 유용합니다.
CPU 디스크 I/O 대기 시간을 계산하기 위해 사용되는 방법
AIX 4.3.3 이상에는 디스크 입출력에 대해 대기하며 보내는 CPU 시간(wio 시간)의 퍼센트를 계산하기 위해 사용되는 방법이 향상되어 있습니다. AIX 4.3.2 및 이전 버전의 운영 시스템에서 사용되었던 방법은 특정 상황 하에서 SMP에서의 부풀어진 wio 시간 열람을 제공합니다. wio 시간은 명령 sar(%wio), vmstat(wa) 및 iostat(% iowait)에 의해 보고됩니다.
AIX 4.3.2 및 이전 버전에서 사용되는 방법은 다음과 같습니다. 각 프로세서에서의 각 시계 인터럽트(프로세서당 1초의 100배), 판별은 시간의 최종 10ms를 두기 위해 네 개의 범주(usr/sys/wio/idle) 중 하나에 대해 이루어집니다. 시계 인터럽트시 usr 모드에서 CPU가 사용 중이었으면, usr은 해당되는 범주에 시계 표시가 추가됩니다. 시계 인터럽트시 커널 모드에서 CPU가 사용 중이었으면, sys 범주에 표시가 생깁니다. CPU가 사용 중이 아니었으면, 디스크에 대한 I/O가 진행 중인지 보기 위해 검사합니다. 디스크 입출력이 진행 중이면, wio 범주가 증가됩니다. 어떤 디스크 입출력도 진행 되고 있지 않고 CPU도 사용 중이 아니면, 유휴 범주에 표시됩니다. 부풀어진 wio 시간 열람은 I/O에 대해 기다리는 스레드 수에 관계없이 모든 유휴 CPU가 범주화되어 발생합니다. 예를 들어, 하나의 스레드만 I/O를 수행하는 시스템은 수반하는 CPU 수에 관계없이 90% 이상의 wio 시간을 보고할 수 있습니다.
운영 시스템 AIX 4.3.3 이상에서 사용되는 방법은 다음과 같습니다. 운영 시스템 AIX 4.3.3에서의 변경은 해당 CPU에서 미해결 I/O가 시작된 경우 유휴 CPU를 wio로 표시하는 것입니다. 이 방법은 I/O를 수행하는 스레드가 적고 시스템이 유휴 상태일 경우 더 낮은 wio 시간을 보고할 수 있습니다. 예를 들어, 네 개의 CPU와 I/O를 수행하는 하나의 스레드가 있는 시스템은 최대 25% wio 시간을 보고합니다. 12개의 CPU와 I/O를 수행하는 하나의 스레드가 있는 시스템은 최대 8% wio 시간을 보고합니다. NFS 클라이언트는 VMM을 통해 읽기/쓰기를 진행하고 완료하기 위해 I/O를 기다리는 VMM에서 소비되는 biod는 이제 I/O 대기 시간으로 보고됩니다.
여러 예제와 보고서를 원하면 sar 명령에 대한 출력 파일을 지정하는 것이 편리합니다. 표준 출력 데이터를 sar 명령에서 /dev/null로 지정하고 sar 명령을 백그라운드 프로세스로 수행하십시오. 이에 대한 구문은 다음과 같습니다.
sar -A -o data.file interval count > /dev/null &
모든 데이터는 2진 형식이며 파일(data.file)에 저장됩니다. 그런 다음 -f 옵션을 사용하여 sar 명령으로 선택적으로 표시할 수 있습니다.
sar 명령은 프로세스 sadc를 호출하여 시스템 데이터에 액세스합니다. 두 개의 쉘 스크립트(/usr/lib/sa/sa1 및 /usr/lib/sa/sa2)는 cron 명령으로 실행되도록 구성되어 있으며 일별 통계와 보고서를 제공합니다. 샘플 스탠자는 /var/spool/cron/crontab/adm crontab 파일에 들어 있으며(주석표시되어 있음) cron 디먼이 쉘 스크립트를 수행해야 하는 시기를 지정합니다. 이러한 방법의 데이터 수집은 일정 기간을 넘는 시스템 사용도를 특성화하고 최대 사용 시간을 판별하는 데 유용합니다.
/etc/rc 스크립트에서 해당되는 행의 주석표시를 없앰으로써 시스템이 시작될 때 가상의 레코드를 표준 시스템 활동 일별 데이터 파일에 삽입할 수 있습니다. sar 명령은 이전 레코드보다 CPU 시간이 짧은 레코드에 대해 time change not positive를 보고합니다. 이는 가상 레코드를 주석표시를 없앤 /etc/rc가 삽입하여 시스템을 재부트하는 경우 발생합니다.
주: sar 명령은 국지 활동에 대해서만 보고합니다.
웹 기반 시스템 관리자(wsm)의 시스템 응용프로그램을 사용하여 이 명령을 수행할 수 있습니다.
SMIT(시스템 관리 인터페이스 도구) smit sar 단축 경로를 사용하여 이 명령을 수행할 수도 있습니다.
플래그
-A -P 플래그를 지정하지 않고 -A 플래그를 지정하면, -abckmqruvwy를 지정하는 것과 동일합니다. -P 플래그와 함께 사용되면 -A는 -acmuw를 지정하는 것과 동일합니다.
-a 초당 여러 시스템 파일 액세스 루틴이 호출된 횟수를 지정하는 파일 액세스 시스템 루틴의 사용을 보고합니다. -P 플래그와 함께 사용될 때 지정된 각 프로세서에 대한 정보가 제공됩니다. 그렇지 않으면 시스템 전체에 대한 정보만 제공됩니다. 다음과 같은 값이 표시됩니다.
dirblk/s
특수 파일에 대한 디렉토리 항목을 찾기 위해 디렉토리 탐색 루틴이 읽은 512 바이트 블록의 수
iget/s
복수 파일 시스템 유형을 지원하는 여러 i-노드 참조 루틴을 호출합니다. iget 루틴은 포인터를 파일 또는 장치의 i-노드 구조로 리턴합니다.
lookuppn/s
경로 이름이 제공될 때 v-노드의 주소를 찾는 디렉토리 탐색 루틴을 호출합니다.
-b 버퍼 활동을 초당 전송, 액세스, 캐시(커널 블록 버퍼 캐시) 히트 비율로 보고합니다. 대부분의 버전 3에서 파일에 대한 액세스 권한은 커널 블록 버퍼링을 생략하기 때문에 이러한 통계를 생성하지 않습니다. 그러나 프로그램이 블록 장치 또는 I/O를 위한 원시 문자 장치를 열면 기존의 액세스 메카니즘이 사용되어 생성된 통계를 의미있게 만듭니다. 다음과 같은 값이 표시됩니다.
bread/s, bwrit/s
블록 I/O 조작 수를 보고합니다. 이 I/O는 lread/s 값의 설명에서 논의한 것처럼 블록 버퍼 캐시 영역을 관리하기 위해 커널이 수행하는 것이 일반적입니다.
lread/s, lwrit/s
논리적 I/O 요청 수를 보고합니다. 블록 장치에 대한 논리적 읽기 또는 쓰기가 수행될 때 전체 블록 크기 이하의 논리적 전송 크기를 요청할 수 있습니다. 시스템은 완전한 블록의 물리적 장치 단위 장치에 액세스하고 이런 목적을 위해 준비해 놓은 커널 버퍼에 이런 블록을 버퍼합니다(블록 I/O 캐시 영역). 이 캐시 영역은 블록 장치에 대한 복수 논리적 읽기 및 쓰기가 캐시에서 전에 버퍼했던 데이터에 액세스하고 장치에 대해 실제 I/O를 요구하지 않도록 커널이 관리합니다. 블록 장치에 대한 응용프로그램 읽기 및 쓰기 요청이 논리적 읽기 및 기록으로서 통계로 보고됩니다. 캐시 영역 관리에서 커널이 블록 장치에 대해 수행한 블록 I/O가 블록 읽기 및 블록 쓰기로 보고됩니다.
pread/s, pwrit/s
원시 장치에 대한 I/O 조작 수를 보고합니다. 원시 문자 장치에 대해 요청한 I/O는 블록 장치같이 버퍼되지 않습니다. I/O는 장치에 대해 직접 수행됩니다.
%rcache, %wcache
캐시 효율성(캐시 히트 퍼센트)을 보고합니다. 이 퍼센트는 [(100)x(lreads - breads)/ (lreads)]로 계산합니다.
-c 시스템 호출을 보고합니다. -P 플래그와 함께 사용될 때 지정된 각 프로세서에 대한 정보가 제공됩니다. 그렇지 않으면 시스템 전체에 대한 정보만 제공됩니다. 다음과 같은 값이 표시됩니다.
exec/s, fork/s
분기 실행(fork) 및 exec 시스템 호출의 총 수를 보고합니다.
sread/s, swrit/s
읽기/쓰기 시스템 호출의 총 수를 보고합니다.
rchar/s, wchar/s
읽기/쓰기 시스템 호출로 전송한 총 문자 수를 보고합니다.
scall/s
총 시스템 호출 수를 보고합니다.
주: sar 명령은 수행된 간격에 따라 상당한 읽기 및 쓰기 수를 스스로 생성할 수 있습니다. 총 통계에 대한 sar 명령의 기여도를 이해하려면 작업부하없이 sar를 수행하십시오.
-d XDC 디스크와 테이프 드라이브를 제외하고 각 블록 장치(예: 디스크 또는 테이프 드라이브)에 대해 활동을 보고합니다. 데이터가 표시될 때, 장치 스펙 dsk는 일반적으로 디스크 드라이브를 나타내기 위해 사용됩니다. 테이프 드라이브를 나타내기 위해 사용되는 장치 스펙은 시스템에 따라 다릅니다. 보고되는 활동 데이터는 다음과 같습니다.
%busy, avque
전송 요청에 대해 서비스를 제공하면서 장치가 사용 중이었던 시간의 부분, 그 시간 동안 미해결된 평균 요청 수를 보고합니다.
read/s, write/s, blks/s
장치에서 읽거나 장치에 기록한 전송 수를 보고합니다. 바이트들은 512 바이트 단위로 전송됩니다.
avseek
평균 탐색당 밀리초 수를 보고합니다.
-e hh[:mm[:ss]] 보고의 종료 시간을 설정합니다. 디폴트 종료 시간은 18:00입니다.
-f File 레코드를 -o File 플래그로 작성된 File에서 발췌합니다. File 매개변수의 디폴트 값은 현재 일별 데이터 파일인 /var/adm/sa/sadd 파일입니다.
-i Seconds 가능하면 Seconds 매개변수가 지정한 수와 가까운 초에 데이터 레코드를 선택합니다. 그렇지 않으면 sar 명령이 데이터 파일에 표시된 모든 초를 보고합니다.
-k 커널 프로세스 활동을 보고합니다. 다음과 같은 값이 표시됩니다.
kexit/s
초당 커널 프로세스 종료 수를 보고합니다.
kproc-ov/s
프로세스 임계 한계의 시행 때문에 커널 프로세스가 작성할 수 없는 횟수를 보고합니다.
ksched/s
초당 타스크에 지정된 커널 프로세스의 수를 보고합니다.
-m 초당 메세지(전송 및 수신) 및 세마포어(작성, 사용 또는 파괴) 활동을 보고합니다. -P 플래그와 함께 사용될 때 지정된 각 프로세서에 대한 정보가 제공됩니다. 그렇지 않으면 시스템 전체에 대한 정보만 제공됩니다. 다음과 같은 값이 표시됩니다.
msg/s
IPC 메세지 원시 기본요소의 수를 보고합니다.
sema/s
IPC 세마포어 원시 기본요소의 수를 보고합니다.
-oFile 판독 값을 2진 양식으로 파일에 저장합니다. 각 판독 값은 별도의 레코드로 되어 있으며 각 레코드 안에는 판독 시간을 식별하는 태그가 포함되어 있습니다.
-P ProcessorIdentifier, ... | ALL 지정된 프로세서에 대한 프로세서별 통계를 보고 합니다. ALL 키워드를 지정하면 각각의 개별 프로세서와 모든 프로세스에 대한 전역적인 통계가 보고됩니다. 보고할 통계를 지정하는 플래그 중에서 -a, -c, -m, -u 및 -w 플래그만 -P 플래그에서 의미가 있습니다.
-q 대기행렬 통계를 보고합니다. 다음과 같은 값이 표시됩니다.
runq-sz
수행 대기행렬에 있는 커널 스레드의 평균 수를 보고합니다.
%runocc
수행 대기행렬이 점유한 시간의 퍼센트를 보고합니다.
swpq-sz
페이지 인할 커널 스레드 대기의 평균 수를 보고합니다.
%swpocc
스왑 대기행렬이 점유한 시간의 퍼센트를 보고합니다.
주: 열에 공백 값이 있으면 관련된 대기행렬이 비어 있다는 것을 표시합니다.
-r 페이징 통계를 보고합니다. 다음과 같은 값이 표시됩니다.
cycle/s
초당 페이지 대체 순환의 수를 보고합니다.
fault/s
초당 페이지 부재 수를 보고합니다. 어떤 경우의 페이지 부재는 입출력 없이 해결되기 때문에 I/O를 생성하는 페이지 부재를 계산한 것이 아닙니다.
slots
페이징 공간에서 사용 가능한 페이지의 수를 보고합니다.
odio/s
초당 비페이징 디스크 I/O 수를 보고합니다.
-s hh[:mm[:ss]] sar 명령이 지정된 시간 또는 그 후에 레코드 시간-태그를 발췌하게 되는 데이터의 시작 시간을 설정합니다. 디폴트 시작 시간은 08:00입니다.
-u 프로세서 또는 시스템간 통계에 대하여 보고합니다. -P 플래그와 함께 사용될 때 지정된 각 프로세서에 대한 정보가 제공됩니다. 그렇지 않으면 시스템 전체에 대한 정보만 제공됩니다. -u 플래그 정보는 퍼센트로 표시되므로, 시스템 정보는 단순히 각 개별 프로세서 통계의 평균입니다. 또한 I/O 대기 상태는 프로세서가 아닌 시스템에 대해 정의됩니다. 다음과 같은 값이 표시됩니다.
%idle
눈에 띠는 디스크 입출력 요청없이 cpu가 유휴인 시간의 퍼센트를 보고합니다.
%sys
cpu가 시스템(또는 커널) 레벨 레벨에서 실행에 사용되는 시간의 퍼센트를 보고합니다.
%usr
cpu가 사용자(또는 응용프로그램) 레벨 레벨에서 실행에 사용되는 시간의 퍼센트를 보고합니다.
%wio
시스템이 미해결 디스크/NFS I/O 요청을 가지고 있을 때 cpu가 유휴 상태였던 시간 퍼센트를 보고합니다. 위에서 자세한 설명을 참조하십시오.
주: sar 명령은 기타 특수 내용 옵션을 요청하지 않을 때 시스템 단위 장치 활동을 보고합니다.
-V 이전 버전의 운영 시스템에서 작성한 sar 파일을 읽습니다. 이 플래그는 -f 플래그와만 사용할 수 있습니다.
-v 프로세스의 상태, 커널 스레드, i-노드 및 파일 테이블을 보고합니다. 다음과 같은 값이 표시됩니다.
file-sz, inod-sz, proc-sz , thrd-sz
각 테이블에서 사용할 항목 수를 보고합니다.
-w 시스템 교환 활동을 보고합니다. -P 플래그와 함께 사용될 때 지정된 각 프로세서에 대한 정보가 제공됩니다. 그렇지 않으면 시스템 전체에 대한 정보만 제공됩니다. 다음 값이 표시됩니다.
pswch/s
초당 문맥 교환 수를 보고합니다.
-y 초당 tty 장치 활동을 보고합니다.
canch/s
tty 표준 입력 대기행렬 문자를 보고합니다. 이 필드는 AIX 버전 4 이후 버전에서는 항상 0(제로)입니다.
mdmin/s
tty 모뎀 인터럽트를 보고합니다.
outch/s
tty 출력 대기행렬 문자를 보고합니다.
rawch/s
tty 입력 대기행렬 문자를 보고합니다.
revin/s
tty 수신 인터럽트를 보고합니다.
xmtin/s
tty 전송 인터럽트를 보고합니다.
보안
액세스 제어: 이 명령은 adm 그룹의 멤버에 대한 실행(x) 액세스 권한만 보증해야 합니다.
예제
시스템 단위 장치 활동을 보고하려면 다음과 같이 입력하십시오.
sar
다음 20초 동안 각 2초마다 현재 tty 활동을 보고하려면 다음과 같이 입력하십시오.
sar -y -r 2 20
10분 동안 시스템 단위 장치를 관찰하고 데이터를 분류하려면 다음과 같이 입력하십시오.
sar -o temp 60 10
처음 2개의 프로세서에 대한 cpu 활동을 보고하려면 다음과 같이 입력하십시오.
sar -u -P 0,1
그러면 다음과 유사한 출력이 생성됩니다.
cpu %usr %sys %wio %idle
0 45 45 5 5
1 27 65 3 5
모든 프로세서 및 시스템에 대한 메세지, 세마포어 및 cpu 활동을 보고하려면 다음과 같이 입력하십시오.
sar -mu -P ALL
4-프로세서 시스템에서, 이것은 다음과 유사한 출력을 생성합니다(최종 행은 모든 프로세서에 대한 시스템 전반의 통계를 나타냅니다).
cpu msgs/s sema/s %usr %sys %wio %idle
0 7 2 45 45 5 5
1 5 0 27 65 3 5
2 3 0 55 40 1 4
3 4 1 48 41 4 7
- 19 3 44 48 3 5
이전 버전의 운영 시스템에서 생성된 File이라는 시스템 활동 파일을 읽으려면, 다음을 입력하십시오.
sar -V -f File
파일
/usr/sbin/sar sar 명령이 포함되어 있습니다.
/bin/sar sar 명령에 대한 심볼 링크를 표시합니다.
/var/adm/sa/sadd 일별 데이터 파일을 표시하며, 여기에서 dd 매개변수는 달의 일수를 표시하는 번호입니다.
관련 정보
sadc 명령, sa1 명령, sa2 명령.