10GB/s 너머를 향해서 - PM9E1 1TB

Change log

2025. 07. 24 - Low QD Performance by RW Ratio 방법 및 그래프 정정

 

2주 전에 eSSD 벤치마크 방법을 변경한다는 글을 작성했습니다. 그 이후로 테스트 벤치의 변경도 있었고, 개인적으로 상당히 바쁜 날이 흘렀습니다. cSSD 벤치마크의 방법도 변경하며 모든 SSD들의 테스트를 다시 진행하기도 했죠.

여담으로, 2주 전에 올린 970 PRO 1TB의 리뷰는 여러 커뮤니티에 배포되었는데, 제 실수를 뒤늦게 알아챘기에 후속 리뷰를 올리며 잘못된 정보에 대한 사죄를 하기로 다짐했습니다. 리뷰의 마지막에 PM9A1의 리뷰로 돌아온다고 했지만, PM9E1의 리뷰로 돌아오게 되었습니다. 물론, PM9A1의 데이터도 포함되어 있습니다. 하나로 퉁친다고 봐도 될 것 같네요 ㅎㅎ;;

이 리뷰는 "970 PRO는 2025년, 지금도 좋은 SSD인가?"라는 주제로 영상이 제작될 예정입니다. 영상은 단순히 블로그의 리뷰를 그대로 복사하는 것이 아니라, 약간 더 쉽게 접근할 수 있도록 만들 예정입니다. 

서론은 이쯤에서 마무리하고 곧바로 리뷰를 시작하겠습니다.

 

목차


Appearance

M.2 2280 단면 폼팩터로 익숙한 모습입니다. 다만, 노출되는 컨트롤러의 모습이 조금 작아서 약간 귀엽게 보입니다. 후면에는 아무것도 없지만 재질이 PM9A1과 약간 달라진 느낌입니다.

PN의 SAMSUNG MZVLC1T0HFLU-00BL2에서 L2는 Lenovo에서 사용되는 SSD임을 알려줍니다. 정확히는 Lenovo Business Group이며, SED를 지원하지 않는 SKU입니다.

HW는 초기 리비전으로 보여지며, 출고시 FW는 4L1QNXH7입니다. 당연하지만, 해당 FW 그대로 벤치마크를 진행합니다.


Internal Components

PM9E1 1TB Teardown
문외한의 입장에서 일부 IC만 찾아보았으며, 제조시기 등에 따라 변경될 가능성이 있습니다.
Samsung PM9E1 (1TB, M.2 2280)2025. 02. 16
Samsung PRESTOTexas Instruments TPS22998
Samsung K4U8E164A8-MGCLTexas Instruments INA234
Samsung K9OUGY8J5F-CCK0 *2AtGYC
GTGGjE.

컨트롤러는 Samsung PRESTO를 사용합니다. ARM Cortex-R8 5코어를 사용하는 것으로 알려져있으며, Samsung 5nm FinFET 공정을 사용했습니다. 특이사항은 없으며, 플래그십 cSSD에서 보이는 8채널의 컨트롤러입니다.

플래그십 SSD 답게 DRAM이 포함되어 있으며, Samsung K4U8E164A8-MGCL를 사용합니다. Samsung LPDDR4X 4266MT/s 8Gb 모델인데 970 PRO와 PM9A1이 LPDDR4를 채용한 것에 대해 달라진 모습입니다. 용량은 일반적인 L2P 테이블에 맞도록 설계되었습니다.

NAND는 Samsung K9OUGY8J5F-CCK0를 사용했습니다. 8세대 236L TLC에 해당하며, ODP를 통해 512Gb Die로 4096Gb 칩을 만들어 2개 실장했습니다. 총합 512GB *2 = 1TB를 구현합니다. 인터페이스로는 전작에서 발전하여 Toggle 5.0 2400MT/s를 사용하고 Vcc=2.50V, VccQ=1.20V입니다.

PMIC는 GTGGjE를 사용했는데, 전작처럼 역시 알려진 것은 없습니다. 

전체적으로 소자의 배치와 사용된 소자들이 변경된 모습입니다. PM981, 970 PRO, PM9A1은 비슷한 모습과 소자들을 사용했지만, PM9E1에서는 3개의 Texas Instruments TPS22998 부하 스위치와 하나의 Texas Instruments INA234 디지털 전류 모니터를 채용했습니다.

AtGYC라는 의문의 소자도 이전에는 AtFXH라고 마킹되어있었는데 변경된 것처럼 보입니다.

컨트롤러도 PCIe 5.0 SSD부터는 엔터프라이즈와 컨슈머에 별도로 설계되는 등, 이래저래 공이 들어간 모습처럼 보입니다. 

 


Datasheet

Samsung PM9E1 - Specification
Samsung 9100 PRO rev 1.0 - Data Sheet

PM9E1과 동일한 HW를 공유한다고 알려진 9100 PRO의 데이터시트입니다. PCIe 5.0 SSD 답게 SEQ 최대 속도는 10GB/s를 넘으며, RND 최대 속도도 2000k IOPS에 육박하는 모습입니다. 

다만, 9100 PRO 데이터시트에서 볼 수 있는 것처럼 QD256 TC32로 총 OIO가 8192라는 정신나간 상황을 가정합니다. 보고 제 눈을 의심했네요 ㅎㅎ;

예전과 다르게 QD1의 성능은 기입하지 않았습니다. 아쉬운 부분이네요. 

제가 테스트할 일은 없을 것 같은 8TB SKU가 눈에 띄는데, 두께에서 양면 SSD라는 것을 짐작할 수 있습니다.

그외에도 테스트배드의 사양이 리눅스로 변경된 것도 눈에 띕니다.


SW Report

CrystalDiskInfo 9.7.0 - PM9E1 1TB

이번엔 벤치마크를 즐겁게 돌리다가 CDI를 캡쳐했는데 어느정도 사용량이 쌓인 것을 확인할 수 있었습니다. 상태 99%가 제 불편한 심기를 자극하는군요. 

smartmontools와 NVMe-CLI의 id-ctrl 결과는 GitHub에 첨부하도록 하겠습니다.


DUT Summary

벤치마크를 진행할 SSD에 관한 요약입니다.

SAMSUNG MZVLC1T0HFLU-00BL2 [PM9E1 1TB]
LinkPCIe 5.0 x4NVMe VersionNVMe 2.0
Firmware
4L1QNXH7
LBA Size512B
ControllerSamsung PrestoWarning Temp83 °C
Storage MediaSamsung 236L TLCCritical Temp85 °C
Power StateMaximum PowerEntry LatencyExit Latency
PS08.92W1000μs1000μs
PS18.92W1000μs1000μs
PS28.92W1000μs1000μs
PS30.0100W4000μs11000μs
PS40.0050W4000μs46000μs

PS0 - PS1 - PS2의 Maximum Power값은 같은 것도 신경쓰이는데 Entry, Exit Latency도 1ms에 달하는게 좀 많이 신경쓰입니다.

Comparison Device

비교군은 아래와 같습니다.

NameWhy?
970 PRO 1TB [1B2QEXP7]동일 제조사의 PCIe 3.0 플래그십 SSD
PM9A1 1TB [GXA7801Q]동일 제조사의 PCIe 4.0 플래그십 SSD
905P 960GB [E2010650]여전히 칭송받는 구형 Optane SSD

Test Bench

Hardware

CPUAMD Ryzen 5 9600X 
MainBoardASUS ROG STRIX B850-I GAMING WIFIBIOS 1067
RAMTeamGroup T-create DDR5-5600 CL46 Classic 32GB *2 
Boot SSDSamsung PM981a 256GB *2 
PSUCorsair SF750 ATX3.1 
CaseSunmilo H02 
CoolerNoctua NH-D9LFull Speed
CoolerNoctua NF-A8 PWMFull Speed
SW_WinWindows 11 Pro (24H2 26100.4351) 
SW_LinuxRocky Linux 10 Minimal (6.12.0-55.12.1.el10_0)FIO 3.36
M.2 AICASUS ROG PCIE 5.0 M.2 CARD 
U.2 AICUMC-PTU-2 

DUT(Device Under Test)가 될 SSD는 PEG 슬롯에 직결하며, 2-connector Topology까지 허용합니다. 다만, 2.5" SATA SSD는 PROM21(B850 Chipset)에 내장된 SATA 컨트롤러에 의지해, 온보드 SATA 포트에 장착합니다. PCH 드라이버 버전은 7.06.02.123입니다.

기본적으로 DUT는 NF-A8로 Spot Cooling을 하여 Thermal Throttling을 방지합니다.

Software

BIOS에서 ASPM과 관련된 옵션을 확실하게 비활성해주었으며, 쿨러 설정과 같은 필수적인 요소들을 제외하고는 기본값으로 두었습니다. 

Windows는 전원옵션에서 고성능을 설정하고 상세값을 그에 맞춰주었으며 Indexing Service, Scheduled Defragmentation, System Protection, Windows Defender, Windows Updates를 비활성화했습니다. 혹시 모를 백그라운드 작업에 대비해 네트워크는 연결하지 않고 벤치마크를 진행합니다.

start /wait Rundll32.exe advapi32.dll/ProcessIdleTasks

그에 더해 HWiNFO, 작업관리자를 실행시킨 뒤, 위 명령어를 입력하고 15분 뒤를 IDLE상태로 정의해 벤치마크를 진행했습니다.

Windows에서는 NTFS의 기본값으로 포맷한 뒤에 벤치마크를 진행합니다. CrystalDiskMark, 3DMark Storage Benchmark, SPECworkstation WPCstorage가 그 대상이며, 이외에는 Linux에서 진행합니다.

Linux에서는 Rocky Linux를 Minimal 옵션으로 설치, 이후에 필요한 패키지만 추가해 사용하고 libaio를 통해 접근합니다. 드라이버는 Windows와 Linux 둘 다 Inbox Driver를 사용했습니다. 

벤치마크 방법도 이전과 약간 변경되었습니다. 결과를 설명하며 새로운 방법에 대해 언급하겠습니다.


cSSD Benchmarking

CrystalDiskMark 9.0.1

가장 대중적인 도구인 CrystalDiskMark입니다. 백엔드로는 MS의 diskspd를 활용하는데, 간단한 UI를 통해 성능을 측정할 수 있기에 널리퍼졌다고 생각합니다. 기존의 SATA 드라이브에 맞춘 Default 프로필을 우선 진행하고 충분한 휴식시간을 부여한 뒤, NVMe 드라이브에 한정해서 NVMe 프로필을 사용해서 벤치마크를 진행합니다.

사용하던 드라이브라면 Purge를 수행하고 새 드라이브라면 바로 벤치마크를 수행합니다. cSSD의 데이터시트는 FOB 조건에서의 성능을 명시했기에 이를 확인하는 작업이라고 할 수 있겠습니다.

SEQ RW가 각각 14000/12500MBps, RND RW가 각각 1600k/2600k IOPS로 명시되어 있었는데 SEQ 성능은 스펙을 초과하는 모습을 보여줍니다. RND 성능 중 읽기는 QD32 TC16에서 이미 초과하는 모습을 보여주지만, RND 쓰기는 스펙시트에 도달할 때까지 QD가 좀 부족한 모양입니다.

이 시점에서 CPU에 상당한 부하가 가해지기 때문에 더 많은 코어로 가야지 원활하게 최대 RND 쓰기 성능을 볼 수 있을 듯 합니다.

이후 약간의 현실적인 상황을 연출하기 위해 드라이브의 75%를 1M QD8 순차쓰기로 채운 뒤에 벤치마크를 진행합니다.  

FOB 상태와 크게 차이가 없는 모습입니다. 

 

3DMark Storage Benchmark

앞서 CDM을 진행한 드라이브에 휴식을 부여하고 진행합니다. 3DMark Storage Benchmark는 게임 성능 측정에 초점을 두고 있습니다. 자세한 벤치마크 방법은 공식 홈페이지를 참고하시길 부탁드립니다.

3DMark Storage Benchmark - Score

기하평균으로 산출되는 이 점수는 다른 드라이브들과 DUT를 쉽게 비교할 수 있도록 해줍니다.

PM9A1과 대비해서 상당한 발전입니다. PCIe 4.0 플래그십 드라이브들도 함부로 덤비지 못했던 905P 위에 서는 모습이네요. 

물론 엄밀하게 말하자면 PM9E1의 전작은 PM9A1a이지만, 단순하게 3.0 - 4.0 - 5.0 플래그십으로 나누어 생각하도록 합시다. 905P를 넘었다는 것은 어느정도 보람찬 일입니다.

 

SPECworkstation 4.0

SPECworkstation은 SPEC(Standard Performance Evaluation Corporation)에서 워크스테이션의 성능 지표를 측정하기 위해 만들어진 벤치마크 도구이며, WPCstorage는 사전에 지정된 워크로드에 따른 스토리지의 성능을 측정합니다. 

SPECworkstation - SPEC Ratio

결과는 SPEC Ratio라는 기준으로 출력되며, Reference Machine의 성능에 대한 비율로 측정됩니다.

3DMark와 비슷한 감상입니다. 실제 컨슈머 부하에 있어서 상당한 성능 발전이라고 판단할 수 있겠습니다. 이제 970 PRO는 물론이고 905P도 놓아줄 때가 아닐까요?

SPECworkstation - SPEC Ratio by Workload

각 워크로드에 대한 결과 값에서는 우수한 정도에 편차가 있습니다. 워크스테이션의 워크로드가 다양하다는 것을 대변해주는데, 각 워크로드에 대한 설명은 공식 문서를 참고하시기 바랍니다.

MayaVenice 워크로드를 제외하고는 PM9E1이 모두 가장 뛰어난 성능을 보여주는 것을 확인할 수 있습니다. 단순히 "SEQ 성능에 크게 의존한 결과가 아닌가?"라고 하기엔 cfd, energy 워크로드에서 다른 SSD들을 전부 압살하는 모습을 볼 수 있죠. 그 뿐만이 아니라 905P가 독점적이었던 maya, proddev등의 워크로드에서도 PM9E1은 상당한 점수를 얻었습니다.

 

Fill Drive

이제는 많은 곳에서 볼 수 있는 벤치마크입니다. 국내에서는 나래온 더티테스트를 통해 이러한 벤치마크를 진행하는데, 개인적으로 나래온 더티테스트는 X축이 용량 단위이며, 기록 단위도 용량의 0.1% 단위라는 것이 꽤 큰 단점이라고 생각해 직접 진행하기로 했습니다. 

일반적으로 측정하는 1s단위가 아닌 100ms단위로 측정하며, 워크로드는 SEQ 128kiB QD256입니다. 해당 벤치마크는 이례적으로 FOB상태에서 진행해 용량을 채웁니다.

왼쪽의 그래프는 쓰기량에 따라 변화하는 성능을, 오른쪽의 그래프는 시간에 따라 변화하는 성능을 표현합니다. 개인적으로 시계열 그래프를 더 선호하지만, SLC Cache 용량 등의 특성에 대한 직관적인 파악은 좌측의 용량 그래프가 수월합니다.

최대 SLC 캐시 사이즈는 약 250GB로 추정되며, 12,200MiB/s 가량의 속도를 보여줍니다. SLC 캐시가 소진되면 캐시의 내용을 비우기 위해 TLC영역으로 데이터를 folding 하면서 데이터를 받습니다. 이때는 1200MiB/s의 속도가 관찰되며, 이 과정이 종료되면 약 1500MiB/s의 속도로 TLC에 직접 데이터를 작성합니다.

사용가능한 공간의 100%를 채우고 휴식을 부여한 뒤에, 한 번 더 동일한 워크로드로 부하를 가합니다. 

최소 SLC 캐시 사이즈는 약 8GB로 추정되며, 첫 번째와 동일하게 12,200MiB/s 가량의 속도를 보여줍니다. 이후에는 순차적으로 데이터를 덮어쓰기 때문에 간단한 GC와 쓰기 속도가 평형을 이루어 약 1700MiB/s의 속도로 진행합니다.

재미있는 점은 첫 번째와 두 번째의 패스에 걸린 시간이 각각 561초와 565초로 4초 밖에 차이나지 않았다는 것입니다.

Fill Drive - LAT/Time

첫 번째와 두 번째 벤치마크를 진행하는 동안의 지연시간을 표시해 안정적인 정도를 쉽게 파악할 수 있습니다. 그래프를 합치며 회색 수직선으로 휴식시간을 분리했습니다.

전체에 대한 평균 지연시간은 21.05ms입니다. SLC영역에서 PM9A1보다 개선되었지만, 전체적인 값만 본다면 PM9A1보다 뒤쳐졌습니다. 하지만 지연시간의 분포가 평균에서 크게 벗어나지 않는 모습이 꽤 우수해보입니다.

Fill Drive - Average Speed

전체에 대한 평균 쓰기 속도입니다. 솔직히 이 부분은 약간 실망스러웠습니다. 삼성의 PCIe 3.0 - PCIe 4.0 - PCIe 5.0 플래그십 SSD에서 가장 뒤떨어졌습니다. 아니, 오히려 역순이라고 볼 수 있겠네요. 하지만 이는 상당한 쓰기 부하에서의 성능이기에 소비자용 워크로드에 가깝지 않다는 것에 유의하시기 바랍니다.

 

Pre-Conditioning

이전에 언급한 방법과 같습니다만, 다시 이야기하도록 하겠습니다. 

SSD에서 FOB 성능은 유저가 실질적으로 체감하기 힘든 부분입니다. 그렇다면 SNIA SSS-PTS대로 WIPC(Workload Independent Pre-conditioning)과 WDPC(Workload Dependent Pre-conditioning)을 진행해 Steady State를 측정하는 것이 좋을까요? 전 조심스레 최신 cSSD에 대해서는무조건 긍정하긴 어려울 것 같다는 의견을 제시합니다. 

일반 소비자의 워크로드는 몇 가지 특징을 따르는데, 그중 눈여겨 볼 부분이 있습니다. 바로 유휴시간이 상당하다는 것과 일부영역에만 활발하게 엑세스한다는 것입니다. 저는 여러 자료를 읽고 실험을 하며 제 cSSD 벤치마크의 Pre-Conditioning 단계를 아래와 같이 정의했습니다.

  1. 장치를 Purge
  2. LBA의 200%를 128kiB SEQ Write
  3. LBA의 가장 앞 8GiB를 4kiB RND Write
  4. 사용 중인 공간이 75%가 되도록 LBA의 가장 뒤 25%를 Trim

이러한 일련의 과정 사이사이엔 충분한 휴식을 부여합니다. 이후, SEQ 성능의 측정에는 SEQ로 작성된 영역인 LBA 기준 가장 앞 8GiB를 제외한 75%영역을, RND 성능의 측정에는 RND로 작성된 영역인 LBA 기준 가장 앞 8GiB 영역을 엑세스합니다.

이러한 특성으로 인해 여러 사이트나 리뷰에서의 벤치마크 결과와 다른 특성을 보일 수 있는 점을 참고바랍니다.

 

Sync Performance

동기 쓰기, fsync()의 성능을 확인합니다. 일반적으로 경험하는 워크로드는 비동기 쓰기인 경우가 대부분입니다. 하지만 Homelab에서 ZFS나 Ceph, DB 등을 사용하는 경우에는 동기 쓰기가 발생하기도 합니다. 하지만 eSSD용 벤치마크는 아닙니다. Steady State 성능이 아니며 Burst 성능이기 때문입니다. 따라서 cSSD 벤치마크로 분류하게 되었습니다.

실질적으로 진행하고자 했던 이유는 동기 쓰기 성능은 라인업이나 세대에 무관하게 상당히 천차만별이기 때문이었습니다. 한 마디로, 다른 벤치마크들도 그렇지만 개인적인 궁금증을 해소하는 것이 목적입니다. 

Sync Performance - SEQ Write

SEQ 동기 쓰기는 SEQ로만 작성된 영역에서 SEQ 128k QD1으로 500MiB를 작성합니다.

970 PRO에서 PM9A1으로 넘어갈 때는 후퇴했지만, 이후 성장한 모습이 눈에 띕니다. Optane SSD가 좀 거슬리네요.

Sync Performance - RND Write

RND 동기 쓰기는 RND로만 작성된 영역에서 RND 4k QD1으로 500MiB를 작성합니다. 

970 PRO를 넘어섰습니다. 여기서도 905P에 가려지지만 순차 성능보다 이전 세대에 비해 더 큰 성장폭을 보입니다.

 

Low QD Performance by RW Ratio 

Performance versus QD

cSSD의 스펙시트는 SEQ RW, RND RW로 이루어진 4-corners performance만 제시합니다. 하지만 일반적인 NAND 기반의 SSD는 읽쓰기 작업이 혼합되어 있을 때 성능이 하락하며, 100% 읽기 또는 100% 쓰기의 작업이 발생하는 것은 드뭅니다. 따라서 읽쓰기 비율을 10% 단위로 변경하며 성능을 측정합니다. 각 테스트는 5번 반복되며 최대값과 최솟값을 제거한 뒤의 평균값을 나타냅니다.

또한, 제품의 스펙시트에서 언급하는 최대 성능을 보여주는 높은 QD가 아닌, 실제 컨슈머 워크로드의 대부분을 차지하는 낮은 QD에서의 성능을 살펴보겠습니다.

동기쓰기 벤치마크와 마찬가지로 SEQ와 RND는 각각의 영역에서만 접근하며, 실질적인 컨슈머 워크로드의 대부분이 될 Burst 성능을 측정합니다. SLC캐시 영역을 넘어서는 작업이 일어나지 않도록 적은 양의 작업이 발생하기에 SLC캐시 용량이 작은 구형 저용량 SSD에서도 좋은 결과가 산출됩니다. 따라서 그러한 SSD에 대해서는 과장된 결과가 그려지지만, 최신의 대용량 SSD에서는 충분히 사용자가 체감하는 성능값이 보여질 것이라 기대됩니다.

SEQ Performance on RW Ratio

혼합 성능이 상당히 우수해보입니다. 아무리 낮은 QD라고 하지만 별다른 성능 저하가 보이질 않네요. 거기에 QD에 따라 성능 확장도 눈에 보입니다. QD4에서 쓰기속도가 8000MiB/s를 돌파했습니다.

QD1에서는 읽기 비율이 늘어날수록 성능이 상승하지만, QD4에서는 하락하는 것도 흥미로운 부분입니다. 

RND Performance on RW Ratio

RND 성능에 대해서는 항상 보이던 그래프의 개형이라 별다른 말이 필요없을 것 같습니다. QD가 깊어짐에 따라 잘 확장되는 모습이네요. 

Weighted Graph 

위에선 QD와 RW비율에 따라 변화하는 DUT의 성능을 확인할 수 있었습니다. 비교군들을 모두 집어넣게 된다면 그래프에 선이 너무 많아져 해석에 어려움이 발생할 것입니다.

여기서 가중치를 부여합니다. QD1 70%, QD2 20%, QD4 10%으로 부여해 드라이브당 하나의 그래프를 그리며, 다음으로는 전체 RW비율의 성능에 대해 평균을 산출해 드라이브를 정렬합니다.

전체 RW비율의 성능을 평균낸다는 것이 실제 워크로드와 밀접한 워크로드가 있다고 말하기는 어렵습니다. 실제 컨슈머 워크로드는 쓰기보다 읽기 비율이 높으니까요. 하지만 별도의 가중치를 부여하기엔 상당한 고민이 되어 그저 평균으로만 정렬하기로 했습니다. 따라서, 실제 워크로드보다 쓰기 성능이 강조되었다고 판단하는 것이 좋을 것 같습니다.

SEQ Performance on RW Ratio - Weighted

SEQ 성능은 이전세대에게 타의추종을 불허합니다. PCIe 3.0의 대역폭은 가볍게 포화시키네요. NVMe SSD에서 PCIe 링크 버전이 업그레이드 될 때마다 가장 많이 듣는 "영상편집과 같은 작업용에선 체감된다."가 이러한 순차속도 발전에서 나온 것이 아닐까 합니다. 

RND Performance on RW Ratio - Weighted

왠 Optane 하나가 아주 분탕을 칩니다. 가볍게 무시해주면 970 PRO에서 PM9A1으로 갈 때에는 후퇴를 보였지만 PM9E1은 이전과 다르게 확실하게 상당히 발전된 모습입니다.

꽤 인상적입니다.

SEQ Performance on RW Ratio - Average, Weighted

SEQ 성능은 역시 어느정도 세대의 영향이 존재하는 것을 다시금 상기시켜주는, 정말로 타의추종을 불허하는 모습입니다. 

RND Performance on RW Ratio - Average, Weighted

RND 혼합 성능은 역시 905P가 NAND 기반이 아닌만큼 가장 우월한 모습이지만, PM9E1도 이전작들에 비해 상당한 발전이 있는 것을 보여줍니다.

SSD도 계속해서 발전하고 있다는 것을 알려준다고 할 수 있겠네요.

 

Percentile Latency

기본적으로 cSSD의 스펙시트에는 지연시간을 잘 나타내지 않습니다. 하지만 실질적으로 사용자가 체감하게 되는 것은 프로그램들을 실행시킨 것이나 어떤 명령에 대한 지연시간입니다. 이러한 지연시간을 백분위수로 나타낸 그래프입니다. SEQ 작업은 특성상 작업이 완전히 종료되는 것이 중요하다고 판단했기에 RND 성능, 그 중에서도 QD1에 대해서만 비교합니다.

이 그래프들은 지연시간을 나타내지만 실질적인 IOPS는 나타내지 않습니다. 타당한 비교를 하기 위해서는 지연시간만이 아닌 별도의 성능지표가 필요합니다. 따라서 평균 IOPS를 범례에 표시해 여러 SSD를 비교합니다.

다른 벤치마크에서는 눈에 익숙한 MiB/s값을 고집했지만, 여기서는 IOPS단위를 고집한 이유는 다음과 같습니다. MiB/s 단위로 표기하면 변화가 작아서 덜 직관적이라는 것이 첫 번째이며, 이 그래프가 산출된 워크로드는 전부 4kiB 사이즈란 것이 두 번째입니다.

해당 벤치마크의 데이터는 기본적으로 앞서 Low QD Performance by RW Ratio파트에서 나온 측정치를 IO단위로 전부 분석한 것입니다. 최대 IOPS에서의 변화 그래프인 것이 상당히 아쉬운 부분입니다.

다시 말하자면, 너무 단순한 분석입니다. 더 심도 깊게 지연시간을 탐구하기 위해서는 주어진 IOPS에 따른 지연시간이나 다른 부하가 존재할 때에 분석이 필요하다고 생각합니다. 추후 다른 분석으로 다시 찾아오겠지만, 하나의 다짐으로 리뷰에서는 당분간 해당 그래프를 제시하겠습니다.

Tail Latency에 대해서는 여전히 중요하다고 생각하지만, 접근방법이 잘못되었다고 생각해 그래프를 완전히 제외했습니다. 별도의 상세한 설명은 생략합니다. 

RND Read - Percentile/LAT
RND Write - Percentile/LAT

큰 의미는 없지만, RND 읽기에서 PM9E1의 10%~90%+까지 꽤 강한 일관성이 인상적이었습니다.


eSSD Benchmarking

970 PRO를 진정으로 넘었다고 하려면 안정적인 영역에서의 성능도 높아야겠죠?

평소에는 cSSD 대상으로 Steady State의 측정은 하지 않습니다. 단순히 이 워크로드는 컨슈머 워크로드가 아니기 때문입니다. 하지만, 예산 상의 이유로 Enterprise 환경에서도 cSSD가 채용될 때가 있으며, Hyperscale Boot Drive의 요구 성능도 cSSD와 eSSD의 사이에 있습니다.

eSSD 벤치마크의 결과는 사람들이 평소에 보고 기대하는 성능과는 크게 괴리가 느껴질 수 있습니다. 다시 말하지만, 이는 컨슈머 워크로드가 아니며 단순히 제 궁금증에 의한 벤치마크입니다.  

eSSD 벤치마크는 SNIA SSS-PTS를 참고해 다음과 같이 진행합니다.

  1. Purge를 수행하고 15분 휴식
  2. 128k SEQ Write QD256 (User Capacity *2)
  3. Steady State에 도달할 때까지 전과 동일한 워크로드를 수행 (최대 User Capacity *23)
  4. SEQ 성능 측정
  5. 4k RND Write QD256 (User Capacity *2)
  6. Steady State에 도달할 때까지 5번과 동일한 워크로드를 수행 (최대 User Capacity *23)
  7. RND 성능 측정

이 일련의 과정은 휴식시간 없이 진행되며, 대역폭의 기울기가 ±10%인 상태를 30초 유지한다면 Steady State로 판단하고 성능 측정을 수행합니다. 성능 측정은 5분 동안 진행하며 30초의 적응 시간을 가집니다.

libaio가 아니라 io_uring을 사용하며, 성능 측정시 엑세스 범위는 User Capacity의 전체 영역입니다. 두 부분 모두 cSSD 벤치마크와 차별화되는 포인트죠.

SEQ Pre-Conditioning

SEQ Pre-Conditioning은 약 20여분만에 종료되었습니다. 중간중간 SLC Cache를 활용하고 싶어서 발악하는 모습이 종종 보이네요.

SEQ Performance

SEQ 읽기는 가장 우수한 모습을 보여주었습니다. PM9A1 같은 경우에는 1kiB에서 성능이 떨어졌지만, PM9E1에선 해결된 모습입니다.

32kiB 이후로는 대역폭이 포화된 모습이 관찰됩니다.

SEQ 128kiB 읽기에서도 가장 우수했으며, cSSD 벤치마크에서 본 것처럼 낮은 QD에서도 PCIe 3.0 대역폭은 포화시키고도 남습니다. QD16부터 대역폭이 포화된 모습은 PM9A1과 동일했습니다.

읽기와 다르게 SEQ 쓰기는 대체로 좋지 않은 모습입니다. 2kiB 이하의 BS에선 우수하지만, 정작 4kiB이후로는 가장 뒤쳐지는 모습이네요. 

DUT과 비교군 모두 QD2에서 QD256까지 SEQ 쓰기에서 큰 차이를 내지 못했습니다. 당연하지만 cSSD에서의 Fill Drive 벤치마크, 그 중에서도 Average Speed와 유사한 모습입니다.


RND Pre-Conditioning

조금 더 가혹하게 들어가봅시다. RND Pre-Conditioning은 약 3시간 20분이 걸렸으며, Steady State에 성공적으로 진입하였습니다.

시작부터 1000초까지의 부분을 확대한 모습입니다. 

RND Performance

RND 읽기도 SEQ와 마찬가지로 PM9E1이 가장 우수한 모습을 보였습니다. 특이한 부분은 4kiB에서 PM9A1처럼 PM9E1도 성능이 우수하다는 것이며, 8kiB에서는 되려 하락한 모습을 보였습니다.

낮은 QD의 RND 읽기는 진작 Optane SSD에게 이길 수 없습니다. 하지만 꽤 높은 QD에서는 성공적으로 Optane SSD를 누르고 가장 좋은 성능을 보여줍니다.

다만, 실제 상황에서는 Optane SSD의 우수한 성능이 실제로 가해지는 QD를 낮춰준다는 것을 이해해야합니다.

BS에 따른 RND 쓰기입니다. 그래프가 너무 압축된 것 같아 아래에 하나 더 제시합니다.

RND Write Bandwidth (by Block Size, Except 905P 960GB)

RND 쓰기에선 조금 흥미로운 결과를 보입니다. 970 PRO < PM9E1 < PM9A1 이라는 순위입니다. 이는 단 한 번도 바뀌지 않고 테스트한 모든 BS에서 발생했습니다. 

그리고 어떻게 보면 당연하게도 공통적으로 4kiB에서 최대 성능을 보이고 이를 유지합니다.

QD에 따른 RND 쓰기입니다. 여기서도 그래프가 너무 압축된 것 같아 아래에 하나 더 제시합니다.

RND Write IOPS (by QD, Except 905P 960GB)

역시 마찬가지로 PM9A1이 가장 좋은 모습을 보입니다. 공통적으로 QD2에서의 IOPS를 유지합니다. QD1 한정, 미세한 차이로 PM9E1이 가장 우수한 모습을 보입니다. 

Read 70%, Write 30%로 혼합된 워크로드입니다. 여기선 바로 옆에 한 친구를 제외한 그래프를 제시합니다. 

혼합 성능은 쓰기와 비슷한 양상으로, PM9A1이 가장 뛰어났습니다. 다만, 그렇게 큰 차이를 보여주진 못하였고 QD32부터 차이가 벌어지기 시작했습니다. 970 PRO는 QD8부터 조금씩 차이가 벌어졌고요.

eSSD 벤치마크에서 새롭게 돌아온 그래프입니다. QD1에서의 지연시간을 IO단위로 모두 분석해서 때려박았습니다. 0~90%까진 선형적이지만 이후로는 9가 늘어나는 로그 스케일입니다. X축도 마찬가지로 로그 스케일이고요.

RND 읽기는 큰 차이가 없었지만, Mix에서는 공통적으로 99% 까진 어느정도 일관성을 보이다가 늘어지는 모습을 보입니다. 쓰기는PM9E1이 99.9%까진 상당한 일관성을 보여주다가 99.99%에 안정적으로 도달하지 못하는 모습입니다. 


Closing

PM9A1과 같은 전작과 다르게 PM9E1은 엔터프라이즈와 다른 컨트롤러로 접근했습니다. 출시가 조금 늦어진 것도 그 이유가 적잖게 있다고 생각하는데, 실제로는 어떨지 모르겠네요.

문외한이긴 하지만, IC의 종류와 배치가 나름 바뀐 것으로 삼성이 상당히 신경을 써서 출시한 제품이 아닌가 생각이 듭니다. PM9A1에 비하면 컨슈머 워크로드에서의 성능 발전이 상당했고요. 

국내에선 나래온 더티 테스트에 상당히 중요하게 반응하는 분들이 많습니다. 그런 분들은 해당 벤치마크에서 SLC 캐시는 그저 장난일 뿐이며 캐시 이후의 속도를 굉장히 중요시하는 자세를 가진 것으로 보이는데, 이러한 기준에서 보면 PM9E1은 PM9A1보다도 못한 졸작이란 평가를 받을 수 있을 거라 생각합니다.

제 생각은 약간 다릅니다. PM9E1은 PM9A1에 비해 더 큰 SLC 캐시를 보유하게 되었으며, 아주 시원하게 10GB/s가 넘는 속도를 보여줍니다. 그뿐만이 아니라 낮은 QD의 혼합 성능에서도 상당히 발전한 모습이 보였으며, 일반적으로 조금 더 하드한 컨슈머 워크로드인 WPCstorage에서 905P를 넘는 점수는 상당히 놀랍습니다.

그리고 이번에 리뷰한 PM9E1 1TB 제품은 PM9A1 1TB와 다르게 V8 NAND를 사용했습니다. 발전은 기쁩니다. 하지만 PM9E1은 전작들과 다르게 512Gb Die를 ODP로 만들어 실제로 사용된 Die의 개수가 다른게 아쉽습니다. PM9A1과 970 PRO는 256Gb Die로 HDP를 사용했거든요.

온도 벤치마크의 준비는 아직 못하였지만, 확인할 수 있었던 부하가 가해질 때의 온도는 나름 매력적이었습니다. 최첨단 공정을 사용한만큼 초창기 PCIe 5.0 SSD와는 상당히 다른 모습이었죠. 

종합적으로 요약하자면, 오랜만에 cSSD를 구매해보았는데 나름 만족스럽다는 결론입니다. 최신 cSSD의 벤치마크를 나름대로 더 진행해보고자 하는데, 우선 가지고 있는 친구들부터 먼저 쳐내야겠죠.

긴 리뷰 읽어주셔서 감사합니다.

 

Samsung PM9A1 1TB 제품을 대여해주시고 라벨 제거까지 허가해주신 지인분께 이 글로 감사인사를 전합니다.

Samsung PM9E1 1TB 제품은 사비로 구매한 제품입니다. 저도 광고 받아보고 싶어요.

This article was updated on