리눅스 성능 측정 도구
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
systemctl start sysstat
System Activity Report
리눅스 시스템의 다양한 리소스(CPU, memory, IO, network, 커널 등)에 대한 세부 정보를 수집, sar command를 통해 실시간 보여주고, 파일로 저장한다.
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~ 형태의 파일에 바이너리 형식으로 저장하는 스크립트
수정후 stsstat 재시작해야 적용됨, SADC_OPTION 은 다음날 새로 생선된 파일 부터 적용됨
경로 : /etc/sysconfig/sysstat
HISTORY : sar 파일의 보관 일자 설정 항목 , defualt : 28일
(1초 데이터로 설정했을 경우 sar 파일당 크기가 1 ~ 2GB 정도)
COMPRESSAFTER : sar를 통해 압출된 파일의 경과 기간, default : 31일
SADC_OPTIONS : sadc의 옵션을 지정하는 항목.
기본 주기는 10분에 1번
경로 : /etc/crond.d/sysstat
crond.d 밑에 sysstat이 없으면 생성
# Run system activity accounting tool every 1 minutes
* * * * * root /usr/lib64/sa/sa1 1 1
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
$ 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
(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 항목과 동일한 명칭
(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
(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
참조