Linux command - sar

sycho·2023년 12월 16일
0

Linux Commands

목록 보기
8/30

sar

  • documentation 여기서 설명하는 것 이상으로 유용한 command 및 nmon에서 출력하는 정보에 대한 내용이 써져 있으니 궁금하면 찾아보자.

  • System Activity Report의 약자다. Unix계열 OS에서 OS 관련 자원인 CPU 사용량, 메모리 활용도, I/O 장치 사용률, 네트워크, 디스크 사용률, 프로세스랑 쓰레드 할당, 배터리 성능(...), plug and play 장치 관련, file system등을 어떻게, 얼마나 활용하는지에 대해 파악하는데 유용하다.

  • 이걸 실행하고 싶으면 먼저 설치를 해야 한다. Ubuntu 기준 밑을 수행.

$ sudo apt-get install sysstat

WSL 사용시 참고

  • 먼저 그냥 sar command를 입력하진 말고, 다음 command를 수행할 필요가 있음
$ systemctl start sysstat.service
  • 문제는, WSL의 경우 가끔 위를 하려고 하면 다음과 같은 경고와 함께 아무것도 되지 않는 경우가 있다.
$ systemctl start sysstat.service
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
  • root system process가 systemd가 아니라 init인 경우에 이 문제가 발생한다.
$ pstree
init─┬─init───init───sh───sh───sh───node─┬─node─┬─bash───pstree
     │                                   │      └─11*[{node}]
     │                                   ├─node───12*[{node}]
     │                                   ├─node───11*[{node}]
     │                                   └─10*[{node}]
     ├─2*[init───init───node───6*[{node}]]
     └─{init}
  • 이와 관련해서 매우 좋은 글이 하나 있는데, 요약하자면
    • Window 11이나 특정 버전(KB5020030) 이후의 Window 10을 사용한다면 Microsoft Store에 들어가서 Windows Subsystem for Linux를 다운받아야 한다. 그렇다 이게 사실 WSL인데(...) 필자의 경우 Ubuntu를 Microsoft Store에서 받아놓고 WSL은 제대로 설정을 안했어가지고 이런 문제가 발생했었다.
    • 그 외의 경우에는 위의 글을 통해 직접 해결하길 권장.
  • 여하튼 밑과 같이 나오면 된다.
$ pstree
systemd─┬─2*[agetty]
        ├─atop
        ├─atopacctd
        ├─cron
        ├─dbus-daemon
        ├─init-systemd(Ub─┬─SessionLeader───Relay(628)───bash───pstree
        │                 ├─init───{init}
        │                 ├─login───bash
        │                 └─{init-systemd(Ub}
        ├─networkd-dispat
        ├─rsyslogd───3*[{rsyslogd}]
        ├─snapd───23*[{snapd}]
        ├─5*[snapfuse]
        ├─subiquity-serve───python3.10─┬─python3
        │                              └─{python3.10}
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-resolve
        ├─systemd-udevd
        └─unattended-upgr───{unattended-upgr}
  • 또 disk I/O나 file system같은것이 출력이 안 나오는 경우 system activity information을 추적할 수 있도록 허용하지 않은 경우일 수도 있는데, 이를 허용하는 과정은 이 글 참고

basic

  • 다시 본론으로 들어가겠다. 앞에 말했듯이 다음 command를 일단 수행해야 한다.
$ systemctl start sysstat.service
  • systemctl이 뭐냐면, 어떤 'service'랑 관련된 명령어들을 말한다. 그러면 'service'가 뭐냐... 간단히 말해서 그냥 daemon이다. Daemon이 뭔지는 atop 관련 글에서 설명했으니 넘어가고, 여튼 이것들을 Linux에서 흔히 'service'라는 파일로 설정하며, 이것을 실행 및 관리하는 systemd라는 process랑 관련된 명령어가 바로 systemctl인 것이다.

  • 여담으로 앞에서 systemd로 init system이 실행되지 않았다는 오류가 나오는것도 이거랑 관련이 있는데, systemd가 요즘 Linux에서 흔히 사용되는 PID가 1인 process인데, 이게 예전에는 init process였기 때문이다. 옛날 것을 사용했어가지고 오류가 나왔던 것.

  • 여튼 그래서 이제 되는가? 라고 물어보면 또 안된다(...?)

$ systemctl start sysstat.service
Failed to start sysstat.service: Interactive authentication required.
See system logs and 'systemctl status sysstat.service' for details.
  • interactive authentication이 필요로 하기 때문이라고 한다. 이와 관련된 글이 있는데, 요약하자면 GUI상으로 무언가 prompt가 나오면서 인증을 해야 하는데, ssh나 WSL같이 화면이 딱히 없는 형태로 연결을 하는 경우, 이것이 text상으로 이동을 하면서 문제가 생겨 인증이 불가능해져가지고 생기는 오류라고 한다. 해결방법은 간단한데 그냥 앞에 sudo를 붙이는 것이다.
sudo systemctl start sysstat.service
  • 이러면 이제 sysstat.service라는 녀석이 systemd가 관리하에 수행이 되는 것이다. 여기서 수집한 data를 sar이 활용하다보니 이를 수행하는 것은 필수.

command

--help

  • 도움말을 출력한다.
$ sar --help

-V

  • sar의 version을 출력한다. 정확히는 sysstat의 version을 출력한다.
$ sar -V

-u

  • 전체 CPU usage를 확인하는 것이 가능하다. 기본으로 하면 시스템 시작 이후 내내 CPU가 얼마나 활용되었는지를 알려준다.
$ sar -u
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

19:30:42     LINUX RESTART      (12 CPU)

19:40:12        CPU     %user     %nice   %system   %iowait    %steal     %idle
19:50:02        all      0.02      0.00      0.01      0.00      0.00     99.97
Average:        all      0.02      0.00      0.01      0.00      0.00     99.97
  • 반면 특정 주기가 주어진 경우, 현재부터 해당 주기까지 얼마나 활용 되었는지를 알려준다. 그리고 이걸 여러번 반복하는 것도 가능. 밑과 같이 하면 2초 주기로 총 5번 통계를 낸다. 맨 밑에 평균까지 나온다는 점 참고.
$ sar -u 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

19:52:38        CPU     %user     %nice   %system   %iowait    %steal     %idle
19:52:40        all      0.04      0.00      0.00      0.00      0.00     99.96
19:52:42        all      0.00      0.00      0.04      0.00      0.00     99.96
19:52:44        all      0.04      0.00      0.00      0.00      0.00     99.96
19:52:46        all      0.00      0.00      0.00      0.00      0.00    100.00
19:52:48        all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.02      0.00      0.01      0.00      0.00     99.97
  • column별 내용물은
    • %user : user 사용률
    • %nice : nice priority 가진 user 사용률
    • %system : system 사용률
    • %iowait : io request 관련해서 기다리던 비율
    • %steal : hypervisor로서 guest OS에게 cpu를 제공하던 비율
    • %idle : 아무것도 안한 비율

-r

  • 메모리 사용률을 파악할 때 쓰인다. 기본으로 하면 시스템 시작 이후 내내 메모리가 얼마나 활용되었는지를 알려준다.
$ sar -r
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

19:30:42     LINUX RESTART      (12 CPU)

19:40:12    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
19:50:02     15331140  15548364    478544      2.93      6580    437752    991560      4.83    109216    542996         0
Average:     15331140  15548364    478544      2.93      6580    437752    991560      4.83    109216    542996         0
  • 특정 주기가 주어지면 현재부터 해당 주기까지 얼마나 활용되었는지를 알려준다. 여러번 반복 가능. 밑과 같이 하면 2초 주기로 총 5번 통계를 낸다. 맨 밑에 평균까지 나온다는 점 참고.
$ sar -r 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

19:58:39    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
19:58:41     15336540  15553924    472996      2.89      6708    437772    992472      4.83    110844    541840         0
19:58:43     15332440  15549824    477096      2.92      6708    437772    992472      4.83    110844    541648         0
19:58:45     15332372  15549756    477164      2.92      6708    437772    992472      4.83    110844    541852         0
19:58:47     15332372  15549756    477164      2.92      6708    437772    992472      4.83    110844    541852         0
19:58:49     15332372  15549756    477164      2.92      6708    437772    992472      4.83    110844    541852         0
Average:     15333219  15550603    476317      2.91      6708    437772    992472      4.83    110844    541809         0
  • column별 내용물은
    • kbmemfree : 여유 메모리 공간 (KB단위)
    • kbavail : '예측된' 새로운 애플리케이션 시작시 그 녀석에게 제공가능한 메모리 최대량 (swapping 없이). KB 단위. 왜 예측이냐면 reclaimable slab들 중에 reclaim이 가능하지 않은 녀석들이 있을 수 있고, 앱 자체가 잘 작동하려면 page cache가 몇개 있어야 하기 때문에 그것까지 고려한 것이다.
    • kbmemused : 사용되고 있는 메모리 (KB단위)
    • %memused : 전체 대비 사용되고 있는 메모리 비율
    • kbbuffers : kernel에서 buffer로 사용하고 있는 메모리 (KB단위)
    • kbcached : kernel에서 캐시 용도로 사용하고 있는 메모리 (KB단위)
    • kbcommit : 현재 workload 기준 필요로 하는 메모리 (KB단위). out of memory가 발생하지 않는데 필요한 RAM/swap의 추측량이라고 생각하면 된다.
    • %commit : 전체 대비 commit 메모리 비율.
    • kbactive : reclaim 대상이 아닌걸로 표기된 메모리 (KB단위). 보통 최근에 사용된 애들이다.
    • kbinact : reclaim대상으로 표기된 메모리 (KB단위). 보통 최근에 사용되지 않은 애들이다.
    • kbdirty : disk상으로 돌아갈 때 씌어져야 하는 메모리 (KB단위).

-F

  • 장치에 mount된 file system에 대해 파악할 때 쓰인다. 기본으로 하면 시스템 시작 이후 전체에 대한 통계가 나온다. 숫자를 넣으면 특정 주기로 총 몇번 통계를 낼지 지정도 가능. 밑은 2초 주기로 총 5번 통계를 낸다.
$ sar -F 2 5
  • column 별 내용물은
    • MBfsfree : 여유 공간 (MB 단위)
    • MBfsused : 사용중인 공간 (MB 단위)
    • %fsused : 사용중인 filesystem 공간 비중. (권한 있는 사용자 기준)
    • %ufsused : 사용중인 filesystem 공간 비중. (권한 없는 사용자 기준)
    • Ifree : 여유 file inode 개수
    • Iused : 사용중인 file inode 개수
    • %Iused : 사용중인 file inode 개수 비중.

-d

  • block device에 대한 정보 파악 때 사용된다. 기본으로 하면 시스템 시작 이후 전체에 대한 통계가 나온다. 숫자를 넣으면 특정 주기로 총 몇번 통계를 낼지 지정 가능. 밑은 1초 주기로 총 3번 통계를 낸다.
$ sar -d 1 3
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

20:55:26          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util
20:55:27          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
20:55:27          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
20:55:27          sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:55:27          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util
20:55:28          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
20:55:28          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
20:55:28          sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:55:28          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util
20:55:29          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
20:55:29          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
20:55:29          sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util
Average:          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
  • column별 내용물은
    • DEV : 장치 이름
    • tps : 해당 장치의 초당 transfer 개수. 논리적 request는 merge되어서 1개의 request로 device에 전달될 수 있다는 점 참고.
    • rkB/s : read된 초당 data (KB 단위)
    • wkB/s : write된 초당 data (KB 단위)
    • dkB/s : discard된 초당 data (KB 단위)
    • areq-sz : request당 평균 read size (KB 단위)
    • aqu-sz : device 관련 평균 request queue length.
    • await : device당 평균 request 처리 시간
    • %util : 측정 시간 대비 device I/O 작업 비중

-q

  • run queue의 길이와 Load Average 관련 정보 파악 때 쓰인다. 둘 다 CPU 및 프로세스 관련 내용이며 모르면 저 링크 참고. 기본으로 하면 시스템 시작 이후 전체에 대한 통계가 나온다. 숫자를 넣으면 특정 주기로 총 몇번 통계를 낼지 지정 가능. 밑은 2초 주기로 총 5번 통계를 낸다.
$ sar -q 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:05:53      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
21:05:55            0       253      0.00      0.00      0.00         0
21:05:57            0       253      0.00      0.00      0.00         0
21:05:59            0       253      0.00      0.00      0.00         0
21:06:01            0       253      0.00      0.00      0.00         0
21:06:03            0       253      0.00      0.00      0.00         0
Average:            0       253      0.00      0.00      0.00         0
  • column별 내용물은
    • runq-sz : run queue 크기
    • plist-sz : task list에 있는 task 개수
    • ldavg-1 : 마지막 1분 load average
    • ldavg-5 : 마지막 5분 load average
    • ldavg-15 : 마지막 15분 load average
    • blocked : I/O가 완료되길 기다리는 task 개수

-P

  • 기본적으로 -u랑 같지만, 특정 코어에 대해서만 이를 분석하는 것이다. 밑은 1번 코어에 대한 분석이다.
$ sar -P 1 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:09:00        CPU     %user     %nice   %system   %iowait    %steal     %idle
21:09:02          1      0.00      0.00      0.00      0.00      0.00    100.00
21:09:04          1      0.00      0.00      0.00      0.00      0.00    100.00
21:09:06          1      0.00      0.00      0.00      0.00      0.00    100.00
21:09:08          1      0.00      0.00      0.00      0.00      0.00    100.00
21:09:10          1      0.00      0.00      0.00      0.00      0.00    100.00
Average:          1      0.00      0.00      0.00      0.00      0.00    100.00

-v

  • 프로세스, kernel 쓰레드, inode, File table 관련 정보를 파악할 때 쓰인다. 기본으로 하면 시스템 시작 이후 전체에 대한 통계가 나온다. 숫자를 넣으면 특정 주기로 총 몇번 통계를 낼지 지정 가능. 밑은 2초 주기로 총 5번 통계를 낸다.
$ sar -v 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:09:51    dentunusd   file-nr  inode-nr    pty-nr
21:09:53        16276      1280     31543         2
21:09:55        16276      1280     31543         2
21:09:57        16276      1280     31543         2
21:09:59        16276      1280     31543         2
21:10:01        16276      1280     31543         2
Average:        16276      1280     31543         2
  • column별 내용물은
    • dentunusd : directory cache에서 사용되지 않고 있는 cache entry의 개수. directory cache는 file의 metadata를 저장하는 용도의 cache를 말한다.
    • file-nr : system에서 관리하고 있는 파일 개수
    • inode-nr : system에서 관리하고 있는 inode 개수
    • pty-nr : system에서 관리하고 있는 pseudo-terminal 개수.

-S

  • swapping 관련 정보를 알 수 있다. 기본으로 하면 시스템 시작 이후 전체에 대한 통계가 나온다. 숫자를 넣으면 특정 주기로 총 몇번 통계를 낼지 지정 가능. 밑은 2초 주기로 총 5번 통계를 낸다.
$ sar -S 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:15:22    kbswpfree kbswpused  %swpused  kbswpcad   %swpcad
21:15:24      4194304         0      0.00         0      0.00
21:15:26      4194304         0      0.00         0      0.00
21:15:28      4194304         0      0.00         0      0.00
21:15:30      4194304         0      0.00         0      0.00
21:15:32      4194304         0      0.00         0      0.00
Average:      4194304         0      0.00         0      0.00
  • column별 내용물은
    • kbswpfree : 여유 있는 swap space 공간 (KB단위)
    • kbswpused : 사용 중인 swap space 공간 (KB단위)
    • %swpused : 전체 swap space 대비 사용 중인 swap space 비중
    • kbswpcad : swap space에 있는 녀석들 중 swap memory의 캐시 용도로 사용되는 용량 (KB). swap space에도 있고 main memory에도 있는 내용물들을 말한다. 이것의 장점은 나중에 main memory에 있는 내용물이 free 되어야 할 경우 그걸 swap space에 집어넣는 I/O 작업을 할 필요가 없다는 것이다.
    • %swpcad : 전체 swap space 대비 사용중인 cached된 swap space 비중.

-b

  • I/O 작업 관련 정보를 알 수 있다. 기본으로 하면 시스템 시작 이후 전체에 대한 통계가 나온다. 숫자를 넣으면 특정 주기로 총 몇번 통계를 낼지 지정 가능. 밑은 2초 주기로 총 5번 통계를 낸다.
$ sar -b 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:19:08          tps      rtps      wtps      dtps   bread/s   bwrtn/s   bdscd/s
21:19:10         0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:19:12         0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:19:14         0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:19:16         0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:19:18         0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         0.00      0.00      0.00      0.00      0.00      0.00      0.00
  • column 별 내용물은
    • tps : device에 요청한 transfer 개수
    • rtps :device에 요청한 read transfer 개수
    • wtps : device에 요청한 write transfer 개수
    • dtps : device에 요청한 discard transfer 개수
    • bread/s : device에서 읽은 초당 block 개수
    • bwrtn/s : device에서 쓴 초당 block 개수
    • bdscd/s : device에서 discard한 초당 block 개수

-w

  • context switch, process 생성에 대한 정보를 알 수 있다. 기본으로 하면 시스템 시작 이후 전체에 대한 통계가 나온다. 숫자를 넣으면 특정 주기로 총 몇번 통계를 낼지 지정 가능. 밑은 2초 주기로 총 5번 통계를 낸다.
sar -w 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:23:18       proc/s   cswch/s
21:23:20         0.00    259.50
21:23:22         0.00    275.00
21:23:24         0.00    265.50
21:23:26         0.00    260.00
21:23:28         0.00    260.00
Average:         0.00    264.00
  • column 별 내용물은
    • proc/s : 초당 생성된 task 개수
    • cswch/s : 초당 이루어진 context switch 개수

-B

  • paging 관련 정보를 알 수 있다. 기본으로 하면 시스템 시작 이후 전체에 대한 통계가 나온다. 숫자를 넣으면 특정 주기로 총 몇번 통계를 낼지 지정 가능. 밑은 2초 주기로 총 5번 통계를 낸다.
$ sar -B 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:25:13     pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
21:25:15         0.00      0.00      1.50      0.00     16.00      0.00      0.00      0.00      0.00
21:25:17         0.00      0.00      0.50      0.00      0.00      0.00      0.00      0.00      0.00
21:25:19         0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:25:21         0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:25:23         0.00      0.00      0.00      0.00      0.50      0.00      0.00      0.00      0.00
Average:         0.00      0.00      0.40      0.00      3.30      0.00      0.00      0.00      0.00
  • column 별 내용물은
    • pgpgin/s : disk에서 main memory로 이동한 page (KB 단위)
    • pgpgout/s : main memory에서 disk로 이동한 page (KB 단위)
    • fault/s : system에서 초당 발생한 major + minor page fault
    • majflt/s : system에서 초당 발생한 major page fault. 여기서 major page fault랑 disk I/O를 일으킨 page fault를 말한다.
    • pgfree/s : system에서 초당 free list에다가 집어넣은 page 개수
    • pgscank/s : kswapd daemon에서 초당 scan한 page 개수
    • pgscand/s : 직접 초당 scan한 page 개수
    • pgsteal/s : pagecache/swapcache에서 초당 reclaim한 page 개수.
    • %vmeff : pgsteal / pgscan. page reclaim의 효율성 지표. 100% 근처인 경우 거의 모든 page가 inactive list에 있는 애들로부터 reap되는 것이라고 생각하면 된다. 그러나 너무 낮을 경우 VM에서 virtualization을 유지하는데 고생을 많이 하고 있다는 것을 의미한다. pgscan이 없었으면 그냥 0이 나온다.

-n

  • 네트워크 관련 정보를 파악할 때 쓰인다. 이 때 keyword를 하나 더 넣어야 하는데, 가능한 keyword는 man page에서 확인하길 발한다. 여기선 DEV를 사용할건데, 네트워크 장치와 관련된 네트워크 관련 정보를 파악한다. 숫자를 넣으면 특정 주기로 총 몇번 통계를 낼지 지정 가능. 밑은 2초 주기로 총 5번 통계를 낸다.
$ sar -n DEV 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:35:52        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
21:35:54           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:35:54         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

21:35:54        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
21:35:56           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:35:56         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

21:35:56        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
21:35:58           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:35:58         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

21:35:58        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
21:36:00           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:36:00         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

21:36:00        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
21:36:02           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21:36:02         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
  • column 별 내용물은
    • IFACE : network interface 이름
    • rxpck/s : 초당 받은 packet 개수
    • txpck/s : 초당 보낸 packet 개수
    • rxkB/s : 초당 받은 용량 (KB 단위)
    • txkB/s : 초당 보낸 용량 (KB 단위)
    • rxcmp/s : 초당 받은 compressed packet 개수
    • txcmp/s : 초당 보낸 compressed packet 개수
    • rxmcst/s : 초당 받은 multicast packet 개수
    • %ifutil : 해당 네트워크 인터페이스 활용율.

파일에 저장하기 / 파일에 저장된거 읽기

  • 파일에 저장하려면 -o 옵션을 쓰도록 하자. 밑과 같이 하면 앞의 -u option 예시를 result에다가 저장한다. 저장 위치는 현재 working directory
$ sar -o result -u 2 5
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:33:50        CPU     %user     %nice   %system   %iowait    %steal     %idle
21:33:52        all      0.00      0.00      0.04      0.00      0.00     99.96
21:33:54        all      0.00      0.00      0.04      0.00      0.00     99.96
21:33:56        all      0.00      0.00      0.00      0.00      0.00    100.00
21:33:58        all      0.08      0.00      0.04      0.00      0.00     99.88
21:34:00        all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.02      0.00      0.02      0.00      0.00     99.96
  • result를 읽으려면 -f를 사용해 다음과 같이 한다.
$ sar -f result
Linux 5.15.133.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID)      12/16/23        _x86_64_        (12 CPU)

21:33:50        CPU     %user     %nice   %system   %iowait    %steal     %idle
21:33:52        all      0.00      0.00      0.04      0.00      0.00     99.96
21:33:54        all      0.00      0.00      0.04      0.00      0.00     99.96
21:33:56        all      0.00      0.00      0.00      0.00      0.00    100.00
21:33:58        all      0.08      0.00      0.04      0.00      0.00     99.88
21:34:00        all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.02      0.00      0.02      0.00      0.00     99.96
profile
CS 학부생, 핵심 관심 분야 : Embed/System/Architecture/SWE

0개의 댓글