시스템엔지니어

디스크 성능테스트

더덕2 2024. 10. 17. 09:19

 

0.  성능 테스트에 사용한 OS

운영체제 버전
Rocky 8.9
Rocky 8.9
Rocky 8.8
Rocky 9.4
CentOS 7.9
Ubuntu 22.04

 

1.  dd 명령어를 통한 간단한 디스크 성능 확인

- dd 명령어의 기본QD 1입니다.

- 블록사이즈는 64k, 데이터크기는 1Gb로 통일하여 테스트 진행했습니다.

 

 

dd 명령어 sequential read/write 성능 테스트 결과표

Disk Model Interface Sequential Read Sequential Write DataSheet
SEAGATE
ST1200MM0099
HDD (1.2TB)
SAS 188 MB/s 10 MB/s Sequential Read/Write
(215, 108)
Intel ThinkSystem
SSDSC2KB480G7L
SSD (480GB)
SATA III 182 MB/s 335 MB/s Sequential Read/Write
(500, 330)
Lenovo
SSDPE2KE016T7L
SSD (1.6TB)
NVME 183 MB/s 1200 MB/s Sequential Read/Write
(3300 MB, 1900 MB)

 

1-1.     순차 읽기테스트

dd 읽기 테스트 수행

dd if=/dev/테스트디스크 of=/tmp/testfile bs=64k count=16384 oflag=direct

 

2-2.     순차 쓰기테스트

dd 쓰기 테스트 수행

dd if=/dev/zero of=/dev/테스트디스크 bs=64k count=16384 oflag=direct

 

 

 

2.  iozone 디스크 벤치마크 툴 이용한 디스크 성능 확인
iozone
으로 sequential read/write , random read/write 디스크 성능 테스트

- Sequential 블록 Size : 64k / Random 블록 Size : 4k 로 통일하여 테스트 진행했습니다.

 

  • 블록 사이즈 설정: Sequential 블록 Size는 64k, Random 블록 Size는 4k로 통일하여 테스트를 진행했습니다.

 

  • 멀티스레드 환경 구성: iozone -t 파라미터를 사용하여 멀티스레드 환경을 구성한 결과, 성능이 더욱 향상되었습니다. 특히 블록 사이즈를 최대 64k까지 설정하여 테스트한 결과, 작은 블록 사이즈보다 큰 블록 사이즈에서 속도가 더 잘 나오는 것을 확인했습니다.

 

  • 스레드 수 조정의 중요성: -t 옵션으로 지정한 스레드 수만큼 데이터를 병렬로 처리해 I/O 작업 성능을 극대화할 수 있습니다. 하지만 스레드 수가 너무 많으면 오히려 성능이 저하될 수 있으므로, 데이터 시트에 나와 있는 QD(큐뎁스) 값을 참고하여 적절한 스레드 수를 설정하는 것이 중요합니다.

 

  • 블록 사이즈와 데이터 전송량의 관계: 블록 사이즈가 클수록 한번에 전송할 수 있는 데이터의 양이 증가해, 전반적인 성능이 개선될 가능성이 높습니다.

 

iozone Sequential / Random 테스트 결과표

 

index 디스크 모델 인터페이스 Sequential
Read / Write
(MB/s)
Random
Read / Write
(IOPS)
데이터시트
Sequential(MB/s)
Random(IOPS)
1 SEAGATE
ST1200MM0099
HDD (1.2TB)
SAS 244 / 10 4096 / 4608 Sequential Read/Write
QD:정보없음, 블록Size:정보없음
(215 MB, 108 MB)
 
Random 정보 X
2 Intel ThinkSystem
SSDSC2KB480G7L
SSD (480GB)
SATA III 508 / 336 76076 / 68352 Sequential Read/Write
(QD:32, 블록Size:64k 기준)
500 MB, 330 MB)
 
Random Read/Write
(QD:32, 블록Size:4K 기준)
(72,000 IOPS, 20,000 IOPS)
3 Lenovo
SSDPE2KE016T7L
SSD (1.6TB)
NVME
 
3280 / 1340 820,229 / 372,261 Sequential Read/Write
(QD:128, 블록Size:64k 기준)
(3300 MB, 1900 MB)
 
Random Read/Write
(QD:128, 블록Size:4K 기준)
(645,000 IOPS, 65,600 IOPS)

 

 

index 1.

- QD 정보와 블록사이즈 정보가 데이터시트에 없어 기본값 QD:1 그리고 블록SIZE:64K 기준으로 테스트 진행했습니다.

 

명령어

n  /opt/iozone/bin/iozone -R -i 0 -i 1 -i 2 -t 1 -I -r 64k -s 1G -F /dev/sda

          

Index 2.

- Sequential Test QD:32 블록SIZE : 64K, Random Test QD:128 블록SIZE : 4K 기준으로 테스트 진행했습니다.

 

명령어

n  /opt/iozone/bin/iozone -R -i 0 -i 1 -i 2 -t 32 -I -r 64k -s 1G -F /diskTest/test1 /diskTest/test2 /diskTest/test3 /diskTest/test4 /diskTest/test5 /diskTest/test6 /diskTest/test7 /diskTest/test8 /diskTest/test9 /diskTest/test10 /diskTest/test11 /diskTest/test12 /diskTest/test13 /diskTest/test14 /diskTest/test15 /diskTest/test16 /diskTest/test17 /diskTest/test18 /diskTest/test19 /diskTest/test20 /diskTest/test21 /diskTest/test22 /diskTest/test23 /diskTest/test24 /diskTest/test25 /diskTest/test26 /diskTest/test27 /diskTest/test28 /diskTest/test29 /diskTest/test30 /diskTest/test31 /diskTest/test32

 

index 3.

- Sequential Test QD:128 블록SIZE : 64K, Random Test QD:128 블록SIZE : 4K

로 테스트 진행했습니다.

 

명령어

n  /opt/iozone/bin/iozone -R -i 0 -i 1 -i 2 -t 128 -I -r 4k -s 1G -F /BeeGFS/beemeta1/test1 /BeeGFS/beemeta1/test2 /BeeGFS/beemeta1/test3 /BeeGFS/beemeta1/test4 /BeeGFS/beemeta1/test5 /BeeGFS/beemeta1/test6 /BeeGFS/beemeta1/test7 /BeeGFS/beemeta1/test8 /BeeGFS/beemeta1/test9 /BeeGFS/beemeta1/test10 /BeeGFS/beemeta1/test11 ~ /BeeGFS/beemeta1/test128

 

 

 

 

3.  윈도우에서의 공개 디스크 성능 툴인 Crystal Disk Info 툴 사용하여 NVMe의 성능 측정

노트북에 내장된 M.2 NVME SSD 성능 측정

성능테스트에 사용한 DISK

 

 

  

Disk Model Interface Sequential
Read / Write
(MB/s)
Random
Read / Write
(IOPS)
데이터시트
Sequential(MB/s)
Random(IOPS)
Samsung
PM9C1a
M.2 SSD
1TB
NVME 6182 / 4754 145970 / 101844 Sequential Read/Write
(6000 , 5600 MB)
 
Random Read/Write
(900,000 , 1,000,000 IOPS)