sysstat - sar

hanim·2023년 8월 24일
0

1. sysstat

리눅스 성능 측정 도구
sar : 다양한 리소스(cpu, memory, network, disk I/O 등) 지표를 파일로저장
iostat : disk I/O 지표 측정
mpstat : cpu에 대한 세부 정보 측정
tapestat : tape 드라이버의 I/O 지표 측정
pidstat : 특정 프로세스의 CPU 및 스레드 정보 지표 측정
cifsiostat : cifs 파일 시스템 지표 측정

설치

sudo yum install sysstat
sysstat 11.7.3 version 다운

실행

systemctl start sysstat

1.1 sar

System Activity Report

리눅스 시스템의 다양한 리소스(CPU, memory, IO, network, 커널 등)에 대한 세부 정보를 수집, sar command를 통해 실시간 보여주고, 파일로 저장한다.

1.1.2 구성요소

  • sadc (system activity data collector) :
    sar의 백엔드에서 데이터를 수집하는 데 사용되는 시스템 활동 데이터 수집기.
  • sadf (display data collected by sar in multiple formats) :
    sar에서 생성된 이진 형식인 파일을 다양한 형식(csv, xml,svg)의 포멧으로 변환해주는 도구

  • sa1 (collect and store binary data in the system activity daily data file) :
    sadc 에서 수집한 데이터를 /var/log/sa/sa~ 형태의 파일에 바이너리 형식으로 저장하는 스크립트

  • sa2: sa1으로 생성된 파일을 기반으로, 원하는 지표만 선택하여 /var/log/sa/sa~ 형태로 저장하는 스크립트

1.1.3 설정

(1) sar 옵션 및 로그 저장 일장 설정

  • 수정후 stsstat 재시작해야 적용됨, SADC_OPTION 은 다음날 새로 생선된 파일 부터 적용됨

    경로 : /etc/sysconfig/sysstat

  • HISTORY : sar 파일의 보관 일자 설정 항목 , defualt : 28일
    (1초 데이터로 설정했을 경우 sar 파일당 크기가 1 ~ 2GB 정도)

  • COMPRESSAFTER : sar를 통해 압출된 파일의 경과 기간, default : 31일

  • SADC_OPTIONS : sadc의 옵션을 지정하는 항목.

    • " " : 기본 지표만 수집
    • -S XALL : 경우 전체 지표를 수집
    • -S XDISK : [sar-d, sar -F] : disk io 및 파일 시스템 지표 추출

(2) 수집시간 변경

기본 주기는 10분에 1번

경로 : /etc/crond.d/sysstat

crond.d 밑에 sysstat이 없으면 생성

# Run system activity accounting tool every 1 minutes
* * * * * root /usr/lib64/sa/sa1 1 1

1.1.4 사용법

sar [옵션][인터벌] [횟수]

(1) CPU 사용률(당일)

$ sar (= sar -u)

[root@test /]# sar
Linux 4.18.0-305.3.1.el8.x86_64 (test)         2023년 08월 24일        _x86_64_        (2 CPU)

00시 00분 01초     CPU     %user     %nice   %system   %iowait    %steal     %idle
00시 01분 01초     all      0.08      0.00      0.23      0.00      0.00     99.68
00시 02분 01초     all      0.08      0.00      0.28      0.00      0.00     99.65
00시 03분 01초     all      0.07      0.00      0.25      0.00      0.00     99.68
00시 04분 01초     all      0.08      0.00      0.27      0.00      0.00     99.66
00시 05분 01초     all      0.07      0.00      0.25      0.00      0.00     99.68
00시 06분 01초     all      0.09      0.00      0.28      0.01      0.00     99.62
00시 07분 01초     all      0.07      0.00      0.22      0.00      0.00     99.72
00시 08분 01초     all      0.13      0.00      0.33      0.06      0.00     99.48
평균값:            all      0.08      0.00      0.26      0.01      0.00     99.65
  • %user : 사용자모드 에서 CPU가 사용률
  • %nice : 사용자 모드에서 nice 스케줄링의 우선순위를 변경한 CPU 사용률
  • %sys : 시스템모드(kernel mode) 에서 실행중인 CPU 사용률
  • %iowait :CPU가 disk O/I대기를 위해 기다린 비율
  • %steal : 가상 OS를 이용하고 있을떄 다른 CPU에 의해 대기한 시간 비율
  • %idle : CPU의 idle 상태의 비율 (disk I/O는 제외된 지표)

$ sar -u ALL


[root@test /]# sar -u ALL
Linux 4.18.0-305.3.1.el8.x86_64 (test)         2023년 08월 24일        _x86_64_        (2 CPU)

00시 00분 01초     CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
00시 01분 01초     all      0.08      0.00      0.08      0.00      0.00      0.08      0.07      0.00      0.00     99.68
00시 02분 01초     all      0.08      0.00      0.10      0.00      0.00      0.09      0.08      0.00      0.00     99.65
00시 03분 01초     all      0.07      0.00      0.08      0.00      0.00      0.10      0.08      0.00      0.00     99.68
00시 04분 01초     all      0.08      0.00      0.09      0.00      0.00      0.09      0.08      0.00      0.00     99.66
00시 05분 01초     all      0.07      0.00      0.08      0.00      0.00      0.09      0.08      0.00      0.00     99.68
00시 06분 01초     all      0.09      0.00      0.11      0.01      0.00      0.09      0.08      0.00      0.00     99.62
00시 07분 01초     all      0.07      0.00      0.08      0.00      0.00      0.08      0.06      0.00      0.00     99.72
00시 08분 01초     all      0.13      0.00      0.19      0.06      0.00      0.08      0.06      0.00      0.00     99.48
00시 09분 01초     all      0.08      0.00      0.09      0.00      0.00      0.08      0.06      0.00      0.00     99.69
00시 10분 01초     all      0.06      0.00      0.08      0.00      0.00      0.07      0.06      0.00      0.00     99.74
00시 11분 01초     all      0.05      0.00      0.10      0.01      0.00      0.10      0.08      0.00      0.00     99.66
00시 12분 01초     all      0.06      0.00      0.07      0.00      0.00      0.09      0.07      0.00      0.00     99.72
00시 13분 01초     all      0.05      0.00      0.07      0.00      0.00      0.09      0.08      0.00      0.00     99.71
00시 14분 01초     all      0.07      0.00      0.10      0.00      0.00      0.09      0.08      0.00      0.00     99.67
00시 15분 01초     all      0.06      0.00      0.08      0.00      0.00      0.10      0.08      0.00      0.00     99.69
00시 16분 01초     all      0.06      0.00      0.08      0.00      0.00      0.08      0.07      0.00      0.00     99.71
00시 17분 01초     all      0.04      0.00      0.06      0.00      0.00      0.08      0.06      0.00      0.00     99.77
00시 18분 01초     all      0.06      0.00      0.05      0.00      0.00      0.06      0.04      0.00      0.00     99.79
00시 19분 01초     all      0.04      0.00      0.07      0.00      0.00      0.08      0.06      0.00      0.00     99.76
00시 20분 01초     all      0.06      0.00      0.08      0.00      0.00      0.09      0.08      0.00      0.00     99.70
00시 21분 01초     all      0.09      0.00      0.08      0.00      0.00      0.09      0.08      0.00      0.00     99.67
평균값:            all      0.07      0.00      0.09      0.00      0.00      0.09      0.07      0.00      0.00     99.69
  • %usr : %user 은 virtual processer 가 포함된 지표이고, %usr 은 virtual processer 가 제외된 지표.
  • %sys : %system 은 H/W S/W 인터럽트가 포함된 지표이고, %sys 는 인터럽트가 제외된 지표
  • %irq : H/W 인터럽트 사용률
  • %soft : S/W 인터럽트 사용률
  • %guest : virtual processor 사용률
  • %gnice : virtual processor에서 nice 가중치를 준 사용률

(2) CPU 사용률(날짜별)

$ sar -f/var/log/sa/sa날짜

23일의 사용률

[root@test /]# sar -f /var/log/sa/sa23
Linux 4.18.0-305.3.1.el8.x86_64 (test)         2023년 08월 23일        _x86_64_        (2 CPU)

20:32:43     LINUX RESTART      (2 CPU)

20:40:19     LINUX RESTART      (2 CPU)

20시 41분 01초     CPU     %user     %nice   %system   %iowait    %steal     %idle
20시 42분 01초     all      0.06      0.00      0.20      0.00      0.00     99.74
20시 43분 01초     all      0.07      0.00      0.20      0.01      0.00     99.72
20시 44분 01초     all      0.06      0.00      0.28      0.00      0.00     99.67
20시 45분 01초     all      0.05      0.00      0.23      0.00      0.00     99.72

... 생략

(3) 메모리 사용률

$ sar -r

[root@test /]# sar -r ALL
Linux 4.18.0-305.3.1.el8.x86_64 (test)         2023년 08월 24일        _x86_64_        (2 CPU)

00시 00분 01초 kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty  kbanonpg    kbslab  kbkstack   kbpgtbl  kbvmused
00시 01분 01초    934828   1389964    925216     49.74      3780    579808    618464     17.47    279528    419736        12    111712    113620      4040     10544         0
00시 02분 01초    936052   1391192    923992     49.68      3780    579812    617896     17.46    279532    419064        12    108948    113616      3984     10352         0
00시 03분 01초    936076   1391216    923968     49.67      3780    579812    617156     17.44    279532    418980        12    108932    113624      3992     10296         0
00시 04분 01초    936080   1391224    923964     49.67      3780    579816    616820     17.43    279532    418892        12    108840    113644      3992     10296         0
00시 05분 01초    935984   1391128    924060     49.68      3780    579816    616252     17.41    279536    418956        12    108856    113600      3992     10272         0
00시 06분 01초    936860   1391992    923184     49.63      3780    579804    616252     17.41    279532    417952        12    109936    113636      3888     10212         0
00시 07분 01초    936296   1391432    923748     49.66      3780    579808    618844     17.48    279532    418460        12    108080    113564      3912     10336         0
00시 08분 01초    935824   1391512    924220     49.69      3780    580360    614656     17.37    279860    418576        12    109940    113584      3944     10192         0
00시 09분 01초    935580   1391268    924464     49.70      3780    580360    618328     17.47    279864    418788        12    108524    113604      3936     10264         0
00시 10분 01초    934772   1390464    925272     49.74      3780    580364    618392     17.47    279864    419212        12    110716    113596      3976     10388         0
00시 11분 01초    935268   1390960    924776     49.72      3780    580364    614132     17.35    279864    418792        12    108524    113640      3976     10264         0
00시 12분 01초    935244   1390940    924800     49.72      3780    580368    617732     17.45    279864    418832        12    110584    113712      3968     10276         0
00시 13분 01초    935224   1390920    924820     49.72      3780    580368    617244     17.44    279864    418796        12    108524    113680      3936     10264         0
00시 14분 01초    935144   1390840    924900     49.72      3780    580368    620388     17.53    279864    418796        12    108524    113616      3936     10264         0
00시 15분 01초    935152   1390852    924892     49.72      3780    580372    614968     17.37    279864    418800        12    108524    113580      3944     10264         0
00시 16분 01초    935200   1390900    924844     49.72      3780    580372    618636     17.48    279864    418800        12    108524    113612      3904     10264         0
00시 17분 01초    935236   1390936    924808     49.72      3780    580372    618248     17.47    279864    418800        12    108524    113596      3904     10264         0
00시 18분 01초    935172   1390876    924872     49.72      3780    580376    616804     17.43    279864    418804        12    108524    113624      3904     10264         0
00시 19분 01초    935160   1390864    924884     49.72      3780    580376    616128     17.41    279864    418804        12    110548    113592      3928     10264         0
00시 20분 01초    934712   1390416    925332     49.75      3780    580376    618088     17.46    279864    419308        12    108776    113588      3928     10388         0
00시 21분 01초    935168   1390892    924876     49.72      3780    580380    613576     17.34    279864    418880        12    112612    113744      3952     10276         0
00시 22분 01초    935328   1391056    924716     49.71      3780    580384    615752     17.40    279888    418788        12    108524    113700      3960     10264         0
00시 23분 01초    935116   1390844    924928     49.73      3780    580384    619784     17.51    279888    418872        12    110556    113704      3960     10264         0
00시 24분 01초    935308   1391036    924736     49.72      3780    580384    619124     17.49    279888    418788        12    108524    113684      3960     10264         0
00시 25분 01초    935044   1390776    925000     49.73      3780    580388    618812     17.48    279888    418772        12    108524    113684      3960     10264         0
00시 26분 01초    935168   1390900    924876     49.72      3780    580388    614304     17.36    279888    418796        12    108528    113640      3936     10264         0
00시 27분 01초    935036   1390768    925008     49.73      3780    580388    617972     17.46    279888    418880        12    108536    113672      3944     10264         0
00시 28분 01초    934988   1390724    925056     49.73      3780    580392    615132     17.38    279896    418892        12    108572    113708      3936     10280         0
00시 29분 01초    934976   1390712    925068     49.73      3780    580392    618744     17.48    279896    418832        12    108592    113664      3960     10280         0
00시 30분 01초    934304   1390040    925740     49.77      3780    580392    616008     17.40    279888    419220        12    110636    113636      3960     10264         0
00시 31분 01초    934828   1390552    925216     49.74      3780    580396    619016     17.49    279888    418804        12    108528    113632      3936     10264         0
00시 32분 01초    935008   1390732    925036     49.73      3780    580396    617748     17.45    279888    418888        12    112576    113640      3936     10264         0
00시 33분 01초    934988   1390716    925056     49.73      3780    580400    616632     17.42    279888    418844        12    108564    113700      3952     10276         0
평균값:           935307   1390898    924737     49.72      3780    580259    617213     17.44    279803    418861        12    109313    113640      3950     10285         0

( )의 명칭은 /proc/meminfo 항목과 동일한 명칭

  • kbmemfree (MemFree) : free 상태의 메모리 크기(물리 메모리의 남은 크기)
  • kbavail (MemAvailable) : swap 없이 새로운 프로세스를 시작할 때 사용할 수 있는 메모리 양
  • kbmemused (MemTotal - (MemFree + Buffers + Cached + Slab): user 영역에서 사용 중인 메모리 크기(물리 메모리의 사용한 크기)
  • %memused : 사용 중인 메모리의 점유 백분율(물리 메모리의 사용률)
  • kbbuffers (Buffers) : buffer cache 메모리 크기(버퍼 캐시로 서용되는 물리 메모리 양)
  • kbcached (Cached) : page cache 메모리 크기(페이커 캐시로 사용되는 물리 메모리 양)
  • kbcommit (Committed_AS) : 현재 시스템에 할당된 메모리의 크기. (실제 사용 중인 user영역 크기 + cache 인 듯하다.) 현재의 워크로드(Workload)상에서 어느 정도의 RAM 또는 SWAP 이 더 필요할지를 예측하여 Out of memory가 발생하지 않을 만한 메모리 양이다.
  • %commit : kbcommit의 점유 백분율
  • kbactive (Active) : 사용 중인 메모리에서 (LRU list), 최근에 사용된 메모리 정보이며, 메모리 부족으로 여유 메모리를 확보 (reclaiming) 할 때 후순위의 크기이다. (반환을 되도록 안 하는 크기)
  • kbinact (Inactive) : 사용 중인 메모리에서 (LRU list) 최근에 사용되지 않은 영역의 크기며, 메모리 확보 시 즉시 반환 가능한 크기
  • kbdirty (Dirty) : disk에 write 하기 위해 대기 중인 메모리 크기
  • kbanonpg (AnonPages) : user 영역 페이지 테이블에 매핑되는 non-file 지원 page 크기
  • kbslab (Slab) : 커널 내 자료구조 캐시
  • kbkstack (KernelStack) : 커널 스택이 사용하는 메모리. (이건 회수 안됨)
  • kbpgtbl (PageTables) : page table 크기. 시스템의 모든 page를 기록하기 위한 메모리 크기이며, 많은 프로세스가 동일한 공유 메모리 세그먼트에 연결되어 있으면이 값이 커질 수 있습니다.
  • kbvmused (VmallocUsed) : 사용된 vmalloc 영역의 크기

(4) Load Average

$ sar -q

[root@test /]# sar -q 2 5
Linux 4.18.0-305.3.1.el8.x86_64 (test)         2023년 08월 24일        _x86_64_        (2 CPU)

00시 36분 27초   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
00시 36분 29초         0       246      0.00      0.00      0.00         0
00시 36분 31초         0       246      0.00      0.00      0.00         0
00시 36분 33초         0       246      0.00      0.00      0.00         0
00시 36분 35초         0       246      0.00      0.00      0.00         0
00시 36분 37초         0       246      0.00      0.00      0.00         0
평균값:                0       246      0.00      0.00      0.00         0

  • runq-sz : 실행큐에 쌓여있는 프로세스 수, 일반적으로 이 값은 2보다 작아야 합니다. 지속적으로 높은 값은 시스템이 CPU 제한적임을 나타냅니다.
  • plist-sz : 시스테상의 프로세스 size
  • ldavg-* : 1, 5, 15분간의 시스템의 Load Average 값
  • blocked : 현재 돌고 있는 io job 수 (waiting for I/O to complete), 현재 처리되고잇는 입출력 작업의 수

(5) 디스크 사용정보

$ sar -d

[root@test /]# sar -d 2 5
Linux 4.18.0-305.3.1.el8.x86_64 (test)         2023년 08월 24일        _x86_64_        (2 CPU)

00시 45분 44초       DEV       tps     rkB/s     wkB/s   areq-sz    aqu-sz     await     svctm     %util
00시 45분 46초    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00시 45분 46초   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00시 45분 46초  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00시 45분 46초  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

평균값:              DEV       tps     rkB/s     wkB/s   areq-sz    aqu-sz     await     svctm     %util
평균값:           dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
평균값:          dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
평균값:         dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
평균값:         dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

  • tps : 초당 I/O 전체 IOPS

  • rkB/s : 초당 disk에 read 된 kbyte 크기. (ex. 1024kB/s == 초당 1MB을 disk read 했다.)

  • wrB/s : 초당 disk에 write 된 kbyte 크기. (ex. 2048kB/s == 초당 2MB을 disk write 했다.)

  • dkB/s : 초당 disk에 discard 된 크기.

  • areq-sz : 해당 Device에 발생된 request의 평균 size ( 1 == 1kb )

  • aqu-sz : 해당 Device에 발생된 request들의 queue의 평균 length ( request 평균 size의 대기열이 수량, 즉 보통 1 이하 일 경우 바로바로 처리된다는 거고, 1이 넘어가는 시점부터 queue에 쌓여서 부하 지표를 산출함)

  • await : 발생된 io의 평균 처리 시간(ms) (보통 1ms 이하로 나와야 정상이며, 1ms 이상이 나올 경우는 squ-sz length 가 늘어나면서 한계치에 근접하거나 넘었다고 판단)

  • %util : 디스크의 idle 한계치 지표 ( 100% == 한계치 이상 부하 진행 중)
    ==> raid cache 나 nand 제품같이 뒷단에 parallel 처리 (디스크 또는 nand 수만큼의 분산처리)를 하는 제품에선 %util 의 한계치를 측정할 수 없다.

    (6) 스왑 발생 정보

$ sar -W


[root@test /]# sar -W 2 5
Linux 4.18.0-305.3.1.el8.x86_64 (test)         2023년 08월 24일        _x86_64_        (2 CPU)

00시 48분 36초  pswpin/s pswpout/s
00시 48분 38초      0.00      0.00
00시 48분 40초      0.00      0.00
00시 48분 42초      0.00      0.00
00시 48분 44초      0.00      0.00
00시 48분 46초      0.00      0.00
평균값:             0.00      0.00

  • pswpin/s : 초당 swap in 되는 페이지 수

  • pswpout/s : 초당 swap out 되는 페이지 수

    (8) I/O 와 transfer의 통계

$ sar -b


[root@test /]# sar -b 2 3
Linux 4.18.0-305.3.1.el8.x86_64 (test)         2023년 08월 24일        _x86_64_        (2 CPU)

00시 54분 20초       tps      rtps      wtps   bread/s   bwrtn/s
00시 54분 22초      0.00      0.00      0.00      0.00      0.00
00시 54분 24초      0.00      0.00      0.00      0.00      0.00
00시 54분 26초      0.00      0.00      0.00      0.00      0.00
평균값:             0.00      0.00      0.00      0.00      0.00


  • tps : 초당 전송량(디스크에 요청한 I/O양, IOPS 값)

  • rtps : 초당 읽기 요청 횟수 (읽기 iops)

  • wtps : 초당 쓰기 요청 횟수 (쓰기 iops)

  • bread/s : 초당 읽은 블록 수

  • bwrtn/s : 초당 쓴 블록수

    (7) 네트워크 사용 정보

$ sar -n [키워드]

키워드 : ALL ,DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6&UDP6

참조

profile
개발자가 되려는 개발자

0개의 댓글

관련 채용 정보