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 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) |
'시스템엔지니어' 카테고리의 다른 글
리눅스 시스템 간 암호 입력 없는 SSH 연결 및 PDSH 사용 방법 정리 (1) | 2024.10.17 |
---|