클라우드/AWS
[AWS] EKS Storage 속도 (kubestr & sar)
by Cloud_Park
2023. 5. 13.
# kubestr 툴 다운로드
wget https://github.com/kastenhq/kubestr/releases/download/v0.4.37/kubestr_0.4.37_Linux_amd64.tar.gz
tar xvfz kubestr_0.4.37_Linux_amd64.tar.gz && mv kubestr /usr/local/bin/ && chmod +x /usr/local/bin/kubestr
# 스토리지클래스 점검
kubestr -h
kubestr
# 모니터링
watch 'kubectl get pod -owide;echo;kubectl get pv,pvc'
ssh ec2-user@$N1 iostat -xmdz 1 -p nvme0n1
ssh ec2-user@$N2 iostat -xmdz 1 -p nvme0n1
ssh ec2-user@$N3 iostat -xmdz 1 -p nvme0n1
--------------------------------------------------------------
# rrqm/s : 초당 드라이버 요청 대기열에 들어가 병합된 읽기 요청 횟수
# wrqm/s : 초당 드라이버 요청 대기열에 들어가 병합된 쓰기 요청 횟수
# r/s : 초당 디스크 장치에 요청한 읽기 요청 횟수
# w/s : 초당 디스크 장치에 요청한 쓰기 요청 횟수
# rMB/s : 초당 디스크 장치에서 읽은 메가바이트 수
# wMB/s : 초당 디스크 장치에 쓴 메가바이트 수
# await : 가장 중요한 지표, 평균 응답 시간. 드라이버 요청 대기열에서 기다린 시간과 장치의 I/O 응답시간을 모두 포함 (단위: ms)
iostat -xmdz 1 -p xvdf
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 0.00 2637.93 0.00 10.30 0.00 8.00 6.01 2.28 2.28 0.00 0.33 86.21
--------------------------------------------------------------
# 측정 : Read
curl -s -O https://raw.githubusercontent.com/wikibook/kubepractice/main/ch10/fio-read.fio
kubestr fio -f fio-read.fio -s local-path --size 10G
# [NVMe] 4k 디스크 블록 기준 Read 평균 IOPS는 20309 >> 4분 정도 소요
kubestr fio -f fio-read.fio -s local-path --size 10G
PVC created kubestr-fio-pvc-ncx6p
Pod created kubestr-fio-pod-w5cgr
Running FIO test (fio-read.fio) on StorageClass (local-path) with a PVC of Size (10G)
Elapsed time- 3m42.14412586s
FIO test results:
FIO version - fio-3.30
Global options - ioengine=libaio verify= direct=1 gtod_reduce=
JobName:
blocksize= filesize= iodepth= rw=
read:
IOPS=20300.531250 BW(KiB/s)=81202
iops: min=17304 max=71653 avg=20309.919922
bw(KiB/s): min=69216 max=286612 avg=81239.710938
Disk stats (read/write):
nvme1n1: ios=2433523/10 merge=0/3 ticks=7649660/20 in_queue=7649680, util=99.958305%
- OK
# 측정 : Write
curl -s -O https://raw.githubusercontent.com/wikibook/kubepractice/main/ch10/fio-write.fio
sed -i '/directory/d' fio-write.fio
kubestr fio -f fio-write.fio -s local-path --size 10G
# [NVMe] 4k 디스크 블록 기준 Write 평균 IOPS는 9082 >> 9분 정도 소요
kubestr fio -f fio-write.fio -s local-path --size 10G
PVC created kubestr-fio-pvc-58j52
Pod created kubestr-fio-pod-rc9lj
Running FIO test (fio-write.fio) on StorageClass (local-path) with a PVC of Size (10G)
Elapsed time- 8m52.522138847s
FIO test results:
FIO version - fio-3.30
Global options - ioengine=libaio verify= direct=1 gtod_reduce=
JobName:
blocksize= filesize= iodepth= rw=
write:
IOPS=9077.357422 BW(KiB/s)=36309
iops: min=8292 max=14203 avg=9082.347656
bw(KiB/s): min=33168 max=56822 avg=36329.429688
Disk stats (read/write):
nvme1n1: ios=0/1087555 merge=0/4 ticks=0/29941255 in_queue=29941255, util=99.965790%
- OK