
TLC는 정말 MLC보다 성능이 낮을까? - PM983 960GB
이번 리뷰는 eSSD(enterprise SSD)입니다. 이름에서 예상할 수 있겠지만, PM981과 같은 세대의 SSD입니다. PM981과 PM983은 비슷한 이름답게 상당히 유사한 HW를 공유합니다. 컨트롤러는 물론이고 NAND까지 공유하죠. 추가적인 요소는 더 들어있지만, 핵심 요소만 본다면 FW가 다른 SSD로 생각할 수도 있겠습니다.
마지막 MLC를 채용한 cSSD(consumer SSD), 970 PRO는 MLC라는 포인트에서 많은 사람들에게 안정적이라는 평가를 받습니다. 공교롭게도 eSSD하면 여러 사람들에게 생각나는 포인트도 안정적이라는 점일 것이라 생각됩니다.
그렇다면 궁금해지죠.
MLC cSSD인 970 PRO와 TLC eSSD인 PM983 중에선 누가 더 안정적인 성능을 보여줄까?
서로 다른 시장에서 판매되는 SSD이기 때문에 eSSD를 광고로 대여받는 곳은 비교적 소수입니다. 그리고 그러한 커뮤니티들은 대개 cSSD와의 직접적인 비교를 하지 않습니다. 사실 cSSD에 Steady State를 요구하는 사람이 이상한거죠.
자랑입니다만, 제 리뷰는 제가 궁금한 SSD에 한해 공평하게 벤치를 진행합니다. 거기에 광고는 커녕 모든 것이 제 사비로 진행이 됩니다. 그래서 보통 다루지 않는 cSSD의 Steady State같은 것도 볼 수 있죠. 그 누구도 찾는 사람은 없지만...
eSSD에 대해선 개인이 볼 일이 잘 없습니다. 하지만, 저장장치에 관심이 있는 사람들은 보증이 적용되지 않는 그레이마켓에서 구형 eSSD를 구매해 사용하기도 합니다. 저도 그런 사람 중 하나고요. 그래서 뒤늦게 이러한 구형 SSD를 리뷰합니다.
초라한 자칭 리뷰어이지만, 언젠가 최신 제품을 대여받을 수 있는 날이 오면 좋겠다고 혼잣말을 하며... 첫 eSSD 리뷰를 시작해보겠습니다.
목차
Appearance
cSSD만 보아왔던 분들에겐 약간 생소할 수 있는 폼팩터입니다. 물리적인 2.5" 7mm라는 부분은 흔하게 볼 수 있었던 SATA SSD와 유사하지만, 커넥터 부분은 약간 다르게 생겼습니다.
흔히 U.2라고 불리우는 SFF-8639 커넥터입니다. 엔터프라이즈 시장에선 널리 보급되다 못해, 이젠 사라질 운명에 처한 커넥터죠. 이 부분은 또 언젠가 다루어보도록 하겠습니다. 아마 이번 FMS에서 관련 주제가 있을텐데, 그때 다루게 될지도 모르겠네요.

간단하게 살펴보면 SFF-8639는 SAS(SFF-8482)와 MultiLink SAS(SFF-8630)을 포괄하는, PCIe 4레인을 지원하는 커넥터입니다. 다시 말해, PM983은 PCIe를 사용하는 NVMe SSD입니다.

참고로 내부엔 컨트롤러 자리에 맞게 패드가 붙어있습니다. 발열 해소를 위한 세심한 배려라고 할 수 있겠네요.
PN은 MZQLB960HAJR-00007이며, 특정 기업에 납품되는 용도는 아닙니다. HW는 18년도 36주차의 별도 리비전은 없는 초창기 버전으로 예상되고, 출고시 EDA5202Q라는 FW에 대해서는 별도의 업데이트를 진행하지 않았습니다. 애초에 삼성 엔터프라이즈 SSD는 계약을 맺고 있는 것이 아니라면, 펌웨어를 별도의 루트로 구해야하니 어려움이 있기도 합니다.
Internal Components
문외한의 입장에서 일부 IC만 찾아보았으며, 제조시기 등에 따라 변경될 가능성이 있습니다.

Samsung PM983 (960GB, U.2 7mm) | 2018. 09 |
Samsung PHOENIX | Panasonic 35TQS47MEU *10 |
Samsung K4F2E3S4HA-BGCH | onsemi CAT24C512 |
Samsung K9OMGB8H1A-CCK0 *4 | ABS 822 VE *2 |
Samsung S2FPS05A01 | MPS MP8869S |
컨트롤러는 Samsung PHOENIX를 사용합니다. 이전에 리뷰했던 970 PRO와 동일한 친구이며, 14nm 공정의 8채널 컨트롤러입니다.
DRAM은 Samsung K4F2E3S4HA-BGCH를 사용합니다. LPDDR4 1.5GB 모델인데, 비슷한 용량의 SSD인 970 PRO 1TB보다 약간 많은 메모리 용량입니다. 일반적으로 L2P 테이블을 생각하면 1TB당 1GB 용량이 되겠지만, 실제로는 더 많은 용량을 채용한 것을 확인할 수 있었습니다.
NAND는 Samsung K9OMGB8H1A-CCK0를 사용했습니다. 삼성의 4세대 TLC이며, 256Gb Die를 8개 패키징하여 칩당 2048Gb=256GB를 구현했습니다. 해당 칩은 4개 실장되어 1TB의 Raw Capacity를 구현했습니다. 하지만 cSSD와 다르게 6.7% Over-Provisioning이 가해져 User Capacity는 960GB에 불과합니다. 전형적인 Read Intensive eSSD가 되겠습니다.
PMIC는 Samsung S2FPS05A01를 사용했는데, 이 또한 970 PRO와 동일한 친구입니다.
cSSD 리뷰에서는 보지못했던 Capacitor들이 눈에 띕니다. Panasonic 35TQS47MEU로, PLP(Power-Loss-Protection) 기능을 구현하는데 사용됩니다. 35V, 47µF의 스펙으로 10개가 실장되어 있습니다.
onsemi CAT24C512는 1000k PE Cycle과 100년의 데이터 보존 기간을 자랑하는 64kB EEPROM입니다. 실질적인 사용자의 저장공간으로는 사용되지 않으며, 펌웨어 또는 "SSD의 부트로더"가 저장되어 있을 수 있습니다.
ABS 822 VE는 Texas Instruments THS4061라고 생각했지만, 데이터시트 기준으로 약간의 차이점이 보였습니다. 무슨 IC인지는 판별하지 못했습니다.
MPS MP8869S는 I2C로 제어 가능한 Step-Down DC-DC Converter입니다.

Samsung PM983 (960GB, U.2 7mm) | 2018. 09 |
Renesas AT25DKL161 | Texas Instruments TPS62130 |
FNAIAC | ABS 816 22 |
BPK7YC |
후면에서 가장 큰 IC는 Renesas AT25DKL161입니다. 2MB의 SPI 시리얼 플래시 메모리로, 앞서 보았던 64kB의 EEPROM보다는 여기에 펌웨어가 저장될 것이라는 생각이 듭니다.
Texas Instruments TPS62130는 앞서 보았던 것과 유사한 Step-Down DC-DC Converter이지만, I2C의 지원유무와 출력하는 전압, 전류가 다릅니다.
ABS 816 22는 전면의 ABS 822 VE와 동일하게 생겼지만, 마찬가지로 판별할 수 없었습니다.
그외에는 제 능력으로는 알 수 없었던 IC들 입니다.
Datasheet



데이터시트에서 일반적으로 신경쓰는 사양만 오려냈습니다. 성능 부분은 cSSD와 다르게 Steady State에서의 성능을 명시합니다. 저기 아래에서 한번 검증해보도록 해보죠.
TBW는 1366TB로, 970 PRO의 1200TB를 떠올린다면 인상적인 수치입니다. eSSD로 따지자면, 3년에 1.3 DWPD라는 일반적인 Read-Intensive eSSD의 보증이라고 할 수 있겠습니다.
Notable Points
Power-Loss-Protection Time
cSSD와 다르게 eSSD에는 대부분 PLP를 위한 기술이 적용됩니다. 이는 이미 저장된 데이터뿐만이 아닌, 휘발성인 DRAM, SRAM의 데이터까지 보호합니다. 쉽게말하자면 정전에 대비한 기술인거죠.
이를 위해 PM983 960GB는 Panasonic 35TQS47MEU을 10개 실장했으며, 약 0.287875J의 에너지를 저장할 수 있습니다. 해당 값을 토대로, 데이터시트와 S.M.A.R.T.에 지정되어 있는 전력 소모를 버틸 수 있는 시간을 계산해보았습니다.

갑작스러운 전원 차단에도 30ms 이상의 시간은 확보할 수 있다고 볼 수 있겠습니다.
SW Report

온도 센서는 총 3개가 배치되어있으며, 혹시 앞에서 판별하지 못한 IC가 온도센서이지 않을까?라는 생각도 해보았습니다.
smartmontools와 NVMe-CLI의 id-ctrl 결과는 GitHub에 첨부하도록 하겠습니다.
DUT Summary
벤치마크를 진행할 SSD에 관한 요약입니다.
SAMSUNG MZQLB960HAJR-00007 [PM983 960GB] | |||
Link | PCIe 3.0 x4 | NVMe Version | NVMe 1.2 |
Firmware | EDA5202Q | LBA Size | 512B / 4096B |
Controller | Samsung Phoenix | Warning Temp | 87 °C |
Storage Media | Samsung 64L TLC | Critical Temp | 88 °C |
Power State | Maximum Power | Entry Latency | Exit Latency |
PS0 | 10.60 W | 0 μs | 0 μs |
FW는 출고 버전 그대로이며, EDB7902Q 펌웨어도 구할 수 있었고 고민을 했으나, 굳이 위험을 무릅 쓸 필요는 없을 것 같아 업데이트는 하지 않았습니다.
LBA 용량은 512B와 4096B를 지원하지만, Rel_Perf는 둘 다 동일하게 0이라 조금 더 흔한 512B의 벤치마크만을 진행합니다.
eSSD답게 별도의 IDLE상태를 지원하지 않으며, PS0의 최대 전력은 10.60W로 명시되어 있습니다.
Comparison Device
비교군은 아래와 같습니다.
Name | Why? |
PM981 256GB [1L2QEXD7] | 동일한 컨트롤러, 동일한 64L TLC NAND가 사용된 cSSD |
970 PRO 1TB [1B2QEXP7] | 동일한 컨트롤러이지만 MLC NAND가 사용된 cSSD |
PM9E1 1TB [4L1QNXH7] | 같은 제조사의 최신 플래그십 cSSD |
PM981같은 경우에는 용량이 256GB라는 점에 유의해야하며, 비교대상은 모두 동일한 제조사의 cSSD입니다.
Test Bench
Hardware
CPU | AMD Ryzen 5 9600X | |
MainBoard | ASUS ROG STRIX B850-I GAMING WIFI | BIOS 1067 |
RAM | TeamGroup T-create DDR5-5600 CL46 Classic 32GB *2 | |
Boot SSD | Samsung PM981a 256GB *2 | |
PSU | Corsair SF750 ATX3.1 | |
Case | Sunmilo H02 | |
Cooler | Noctua NH-D9L | Full Speed |
Cooler | Noctua NF-A8 PWM | Full Speed |
SW_Win | Windows 11 Pro (24H2 26100.4351) | |
SW_Linux | Rocky Linux 10 Minimal (6.12.0-55.12.1.el10_0) | FIO 3.36 |
M.2 AIC | ASUS ROG PCIE 5.0 M.2 CARD | |
U.2 AIC | UMC-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 프로필을 사용해서 벤치마크를 진행합니다.
이후, 약간의 현실적인 상황을 연출하기 위해 드라이브의 75%를 1M QD8 순차쓰기로 채운 뒤에 벤치마크를 추가로 진행하지만, DUT와 비교군들은 FOB 상태와 유의미한 차이가 보이지 않는다면 직접적인 CDM의 결과사진은 제시하지 않습니다.

PCIe 3.0 드라이브답게 SEQ 읽기는 3000MB/s의 중반대에 걸립니다. 4-corners performance 모두 970 PRO에 밀리는 모습입니다. 특히 쓰기 값은 SEQ, RND 가릴 것 없이 PM981에도 밀리는 모습입니다.

CDM에서 기본적으로 지정된 워크로드 중, 현실적인 부하에 가까운 4k QD1도 비슷한 양상입니다. 여기선 PM981을 넘는 모습을 보여주네요.
3DMark Storage Benchmark
앞서 CDM을 진행한 드라이브에 휴식을 부여하고 진행합니다. 3DMark Storage Benchmark는 게임 성능 측정에 초점을 두고 있습니다. 자세한 벤치마크 방법은 공식 홈페이지를 참고하시길 부탁드립니다.

기하평균으로 산출되는 이 점수는 다른 드라이브들과 DUT를 쉽게 비교할 수 있도록 해줍니다.
CDM 결과와 순서는 비슷합니다. 그저 차이가 조금 더 돋보일 뿐이라고 할 수 있겠네요.
SPECworkstation 4.0
SPECworkstation은 SPEC(Standard Performance Evaluation Corporation)에서 워크스테이션의 성능 지표를 측정하기 위해 만들어진 벤치마크 도구이며, WPCstorage는 사전에 지정된 워크로드에 따른 스토리지의 성능을 측정합니다.

결과는 SPEC Ratio라는 기준으로 출력되며, Reference Machine의 성능에 대한 비율로 측정됩니다.
3연속으로 비슷한 느낌입니다. 결과적으로 본다면, 실제 컨슈머 부하에 있어서 PM983은 대체로 970 PRO에 밀린다고 볼 수 있겠네요.

각 워크로드에 대한 결과 값에서는 우수한 정도에 편차가 있습니다. 워크스테이션의 워크로드가 다양하다는 것을 대변해주는데, 각 워크로드에 대한 설명은 공식 문서를 참고하시기 바랍니다.
깊게 파고들면 MandE 워크로드를 제외하고는 970 PRO에게 절대적으로 밀리는 상황이며, ccx, proddev 워크로드는 PM981에도 밀립니다. proddev 워크로드 같은 경우에는 970 PRO 또한 PM981에 밀리는 모습을 보아, SLC 캐시의 영향을 많이 받는 워크로드가 아닌가 싶습니다.
물론, PM9E1은 최신 cSSD인 만큼 독보적이네요.
Fill Drive
이제는 많은 곳에서 볼 수 있는 벤치마크입니다. 국내에서는 나래온 더티테스트를 통해 이러한 벤치마크를 진행하는데, 개인적으로 나래온 더티테스트는 X축이 용량 단위이며, 기록 단위도 용량의 0.1% 단위라는 것이 꽤 큰 단점이라고 생각해 직접 진행하기로 했습니다.
일반적으로 측정하는 1s단위가 아닌 100ms단위로 측정하며, 워크로드는 SEQ 128kiB QD256입니다. 해당 벤치마크는 이례적으로 FOB상태에서 진행해 용량을 채웁니다.

개인적으로 시계열 그래프를 더 선호하지만, SLC Cache 용량 등의 특성에 대한 직관적인 파악은 쓰기량에 따른 그래프가 수월합니다.
eSSD 답게 SLC Cache와 같은 기술은 사용되지 않았으며, 평균적으로 1262MiB/s 속도를 유지합니다. 다만, 그래프는 생각보다 그렇게 깔끔하지 않습니다.

사용가능한 공간의 100%를 채우고 휴식을 부여한 뒤에, 한 번 더 동일한 워크로드로 부하를 가합니다.
이전과 유사하게 평균 속도는 1261MiB/s입니다. 소모된 시간도 단 0.6초 차이입니다. 오차 이내라고 할 수 있지 않을까요?

첫 번째와 두 번째 벤치마크를 진행하는 동안의 지연시간을 표시해 안정적인 정도를 쉽게 파악할 수 있습니다. 그래프를 합치며 회색 수직선으로 휴식시간을 분리했습니다.
전체에 대한 평균 지연시간은 25.38ms입니다. 하지만 최대 30ms가 넘는 값도 드물지 않게 보여, 안정적인 속도와는 약간 거리감이 있어 보입니다.

전체에 대한 평균 쓰기 속도입니다. PM981보다는 우수하지만, 용량차이가 상당히 존재하며, 이 분야에서 우수하기로 소문 난 970 PRO는 물론이고 최신 cSSD인 PM9E1에도 뒤쳐지는 모습이었습니다.
이 벤치마크는 소비자 워크로드를 대변하는 것은 아니지만, SEQ 쓰기라면 당시 기준으로도 플래그십 cSSD인 970 PRO가 더 우수했음을 알 수 있습니다.
Pre-Conditioning
이전에 언급한 방법과 같습니다만, 다시 이야기하도록 하겠습니다.
SSD에서 FOB 성능은 유저가 실질적으로 체감하기 힘든 부분입니다. 그렇다면 SNIA SSS-PTS대로 WIPC(Workload Independent Pre-conditioning)과 WDPC(Workload Dependent Pre-conditioning)을 진행해 Steady State를 측정하는 것이 좋을까요? 전 조심스레 최신 cSSD에 대해서는 무조건으로 긍정하긴 어려울 것 같다는 의견을 제시합니다.
일반 소비자의 워크로드는 몇 가지 특징을 따르는데, 그중 눈여겨 볼 부분이 있습니다. 바로 유휴시간이 상당하다는 것과 일부영역에만 활발하게 엑세스한다는 것입니다. 저는 여러 자료를 읽고 실험을 하며 제 cSSD 벤치마크의 Pre-Conditioning 단계를 아래와 같이 정의했습니다.
- 장치를 Purge
- LBA의 200%를 128kiB SEQ Write
- LBA의 가장 앞 8GiB를 4kiB RND Write
- 사용 중인 공간이 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 벤치마크로 분류하게 되었습니다.
실질적으로 진행하고자 했던 이유는 동기 쓰기 성능은 라인업이나 세대에 무관하게 상당히 천차만별이기 때문이었습니다. 한 마디로, 다른 벤치마크들도 그렇지만 개인적인 궁금증을 해소하는 것이 목적입니다.

SEQ 동기 쓰기는 SEQ로만 작성된 영역에서 SEQ 128k QD1으로 500MiB를 작성합니다.
앞서 말한대로 완전한 eSSD용 벤치마크는 아니지만, eSSD가 우위를 보여주는 벤치마크입니다. 삼성 cSSD는 이 부분에서 대체로 다른 제조사의 제품들에 비해 뒤쳐지는 성능을 보여주지만, eSSD는 본연의 쓰기 성능이 잘 드러납니다. 이는 HW로 구현된 PLP 덕분인데, 갑작스러운 전원 차단에도 항상 대비되어 있기 때문에, 모든 쓰기 데이터를 받는 즉시 괜찮다고 호스트에 답변합니다.

RND 동기 쓰기는 RND로만 작성된 영역에서 RND 4k QD1으로 500MiB를 작성합니다.
앞서 말한대로, RND 성능도 비동기 쓰기와 다르지 않습니다. 이것이 바로 동기쓰기 워크로드가 있는 Homelab에서 eSSD를 권장하는 이유라고 할 수 있겠습니다.
어떻게 보면 HW PLP를 하나의 치트키라고 볼 수도 있겠죠.
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에서는 충분히 사용자가 체감하는 성능값이 보여질 것이라 기대됩니다.

완전한 쓰기에선 QD깊이에 따라 큰 차이가 발생하지 않지만, 혼합성능에선 QD1의 성능이 하락하는 것을 볼 수 있습니다. 그렇지만 QD2, QD4는 눈에 띌 정도로 큰 차이가 발생하진 않았습니다.

RND 성능은 역시 QD가 깊어짐에 따라 잘 확장되는 모습이네요. 특히 쓰기에서 QD2와 QD4의 성능차이가 상당하게 보였습니다.
Weighted Graph
위에선 QD와 RW비율에 따라 변화하는 DUT의 성능을 확인할 수 있었습니다. 비교군들을 모두 집어넣게 된다면 데이터가 너무 많아져 해석에 어려움이 발생할 것입니다.
여기서 가중치를 부여합니다. QD1 70%, QD2 20%, QD4 10%로 부여해 드라이브당 하나의 그래프를 그리며, 다음으로는 전체 RW비율의 성능에 대해 평균을 산출해 드라이브를 정렬합니다.
전체 RW비율의 성능을 평균낸다는 것이 실제 워크로드와 밀접한 워크로드가 있다고 말하기는 어렵습니다. 실제 컨슈머 워크로드는 쓰기보다 읽기 비율이 높으니까요. 하지만 별도의 가중치를 부여하기엔 상당한 고민이 되어 그저 평균으로만 정렬하기로 했습니다. 따라서, 실제 워크로드보다 쓰기 성능이 강조되었다고 판단하는 것이 좋을 것 같습니다.

쓰기 100% 영역에서는 PM981에 뒤쳐지지만, 그외의 모든 혼합 영역에선 PM981보다 우수합니다. 하지만, 공통적으로 970 PRO에는 밀리는 모습이 보입니다.

여기서도 앞서 본 SEQ 성능의 가중치 그래프와 동일한 모습입니다. 쓰기에선 PM981에 뒤쳐지고, 그외엔 우수하지만, 970 PRO에는 밀리는 모습입니다.


이에 따라 평균값의 순위도 예상하던 대로입니다. 대체로 일반소비자 사용을 대변하는 워크로드는 다들 PM9E1 > 970 PRO > PM983 > PM981의 순서였습니다.
PM981이 1TB 모델이었다면 PM983과 위치가 바뀌지 않았을까 하네요.
eSSD Benchmarking
PM983에게 만회할 기회를 줍시다. eSSD 영역에서 겨루어보죠.
평소에는 cSSD 대상으로 Steady State의 측정은 하지 않습니다. 단순히 이 워크로드는 컨슈머 워크로드가 아니기 때문입니다. 하지만, 예산 상의 이유로 Enterprise 환경에서도 cSSD가 채용될 때가 있으며, Hyperscale Boot Drive의 요구 성능도 cSSD와 eSSD의 사이에 있습니다.
eSSD 벤치마크의 결과는 사람들이 평소에 보고 기대하는 성능과는 크게 괴리가 느껴질 수 있습니다. 다시 말하지만, 이는 컨슈머 워크로드가 아니며 단순히 제 궁금증에 의한 벤치마크입니다.
eSSD 벤치마크는 SNIA SSS-PTS를 참고해 다음과 같이 진행합니다.
- Purge를 수행하고 15분 휴식
- 128k SEQ Write QD256 (User Capacity *2)
- Steady State에 도달할 때까지 전과 동일한 워크로드를 수행 (최대 User Capacity *23)
- SEQ 성능 측정
- 4k RND Write QD256 (User Capacity *2)
- Steady State에 도달할 때까지 5번과 동일한 워크로드를 수행 (최대 User Capacity *23)
- RND 성능 측정
이 일련의 과정은 휴식시간 없이 진행되며, 대역폭의 기울기가 ±10%인 상태를 30초 유지한다면 Steady State로 판단하고 성능 측정을 수행합니다. 성능 측정은 5분 동안 진행하며 30초의 적응 시간을 가집니다.
libaio가 아니라 io_uring을 사용하며, 성능 측정시 엑세스 범위는 User Capacity의 전체 영역입니다. 두 부분 모두 cSSD 벤치마크와 차별화되는 포인트죠.
SEQ Pre-Conditioning
SEQ Pre-Conditioning은 약 25분이 소모되었습니다. cSSD에서 Fill Drive와 다르지 않은 모습입니다.
SEQ Performance
SEQ 읽기에서는 모든 블록 크기에서 가장 낮은 성능을 보여주었습니다. 970 PRO를 따라오려고 하지만, 아쉽게 도달하지 못합니다.
SEQ 128kiB 읽기에서도 가장 뒤쳐졌으며, QD8에서 한계에 도달했습니다. 데이터시트는 QD32 기준으로 3000MB/s이었지만, 3504MB/s라는 더 우수한 성능을 보여주었습니다.
SEQ 쓰기는 2kiB 이하의 BS에선 PM9E1보다 우수하지만, 4kiB이후로는 가장 뒤쳐지는 모습입니다. 여기선 읽기와 다르게 꽤 차이가 벌어집니다.
QD1부터 일정한 성능입니다. 데이터시트는 QD32에서 1050MB/s의 성능을 기재하였으나, 벤치마크에선 1319MB/s의 성능을 보여주었습니다.
RND Pre-Conditioning
더 가혹하게 들어가봅시다. RND Pre-Conditioning은 3시간이 걸리지 않았으며, Steady State에 깔끔하게 진입하였습니다.
시작부터 1500초까지의 부분을 확대한 모습입니다. Steady State에 진입하기 전까지는 말그대로 엉망진창인 성능이지만, 한 번 진입하고 나니 굉장히 깔끔한 모습입니다. 하지만, 최대 지연시간이 너무 높아 그래프의 해석에 오해가 있을 가능성이 존재합니다.

이런식으로 말이죠. 확실하게 이렇게되면 누구나 다 깔끔해 보일 것 입니다.

그래프를 다른 방향으로 확대했습니다. Steady State에 진입하기까지는 말 그대로 최악의 성능이었습니다만, Steady State에선 cSSD는 누구도 비교할 수 없을만큼 깔끔한 모습을 보여줍니다.
이것이 엔터프라이즈라고 온몸으로 주장하는 것 같네요.
RND Performance
방금 전 보았던 것과 다르게 읽기에선 모두에게 뒤쳐지는 모습입니다. 지연시간을 보면 다들 4kiB에 초점이 맞추어져 있는 것을 확인할 수 있었습니다. PM983은 64kiB에 비해 128kiB에서 성능이 소폭 상승하는 것도 보이네요.
QD깊이에 따른 읽기도 예외는 아니었습니다. 가장 나쁜 성능을 보여주었으며, 모두 다 같이 QD128 이후로는 IOPS가 늘어나지 않았습니다.
데이터시트는 QD32 by 4 workers, 총 QD128에서 400k IOPS가 기입되어있으며, 벤치마크 결과에서는 442k IOPS가 측정되었습니다.
모두들 4kiB에서 최대 성능을 보여줍니다. SEQ과 다르게 2kiB 이하에선 PM9E1이 가장 우수했지만, 그외엔 PM983이 가장 우수한 성능이었습니다.
970 PRO가 가장 뒤쳐지는 이 그래프는 어쩌면 사람들의 인식과 가장 동떨어진 결과가 아닌가 싶습니다.
다들 QD1에서 성능이 변하지 않는 모습입니다. 앞서 본 것과 마찬가지로 PM983이 가장 우수했습니다.
데이터시트는 40k IOPS를 주장하며, 벤치마크에선 46k IOPS가 측정되었습니다. 테스트 시스템의 세대차이라는 거죠.

Read 70%, Write 30%로 혼합된 워크로드입니다.
혼합 성능은 가장 특이했습니다. QD1에선 PM983이 근소한 차이로 뒤쳐졌지만, QD4부터는 970 PRO가 가장 뒤쳐지고, QD16에선 PM983이 우수했지만... QD32 이후로는 PM9E1이 가장 우수했습니다.
하지만 이는 단순한 IOPS일 뿐이며, 해당 값의 분포에 대한 데이터는 들어있지 않습니다. 그렇다면 아래의 QoS 그래프를 한 번 살펴봅시다.
QD1에서의 지연시간을 IO단위로 모두 분석해서 때려박았습니다. 0~90%까진 선형적이지만 이후로는 9가 늘어나는 로그 스케일입니다. X축도 마찬가지로 로그 스케일이고요.
읽기에선 앞서 본 것 처럼 PM983이 가장 뒤쳐졌지만 쓰기에선 양상이 약간 달랐습니다. 99%까지는 똑같이 나빴지만, 99.99%부터는 가장 일관적인 성능을 보였죠. 혼합 작업에서도 꽤 늘어지긴 했지만 하위 지연시간들만 본다면 PM983이 우수했습니다. 다만, 쓰기 작업 만큼의 일관성을 보이진 못했습니다.
데이터시트와의 비교는 표로 간단하게 진행해보겠습니다. 다만, 위 그래프의 데이터와 다르게 아래는 RTT(Round-Trip-Time) 데이터를 기반으로 산출된 값이기에 약간의 차이가 발생합니다.
RND Read | Datasheet | Benchmark Result |
Typical Value | 85 µs | 74 µs |
QoS (99%) | 0.1 ms | 0.09 ms |
QoS (99.99%) | 0.2 ms | 0.12 ms |
RND Write | Datasheet | Benchmark Result |
Typical Value | 50 µs | 22 µs |
QoS (99%) | 0.06 ms | 0.03 ms |
QoS (99.99%) | 0.09 ms | 0.04 ms |
다들 데이터시트보다 우수한 결과를 보여주었습니다. RND 읽기의 99% 지연시간 값은 표기스펙에 근접하는 결과였습니다.
Closing
다시 한 번 말하지만, PM983은 실제로 PM981과 동일한 컨트롤러, NAND를 적용하였습니다. FW의 차이가 만들어내는 성능 차이는 일부 영역에 한해 상당한 차이를 보였죠. 비교대상이었던 PM981이 동일용량이 아니라는 점이 아쉬웠지만, 970 PRO와의 비교를 통해 나름 eSSD의 매력을 볼 수 있었다고 생각합니다.
"TLC는 정말 MLC보다 성능이 낮을까?"
제목의 질문에 대한 답변은 약간 어정쩡합니다. 동일세대인 970 PRO와 PM983을 비교하기엔 너무나 큰 차이가 있기 때문입니다. FW의 작동방식은 물론이고, OP 비율도 다르니 말입니다.
그럼 970 EVO와 970 PRO를 비교하면 될까요? 그렇지 않다고 생각합니다. SLC Cache의 존재가 이를 가려주기 때문이죠. 네, PM983과 SM983을 비교하면 올바르게 성능을 비교할 수 있을 것 입니다. 하지만 아쉽게도 SM983이란 제품은 존재하지 않는 것으로 알고 있습니다. 일부 기업의 특주 제품으로는 존재할 수 있겠지만 말이죠. 조금 더 구형으로 들어가 PM963과 SM963이라면 올바른 비교가 가능할 것으로 기대됩니다.
물론, MLC가 채용된 SM963이 더 우수한 것이 당연할 것입니다. 하지만, 동일세대의 TLC라도 설정 방법과 경우에 따라 MLC보다 우수한 성능을 보여주는 것은 이번 리뷰로 확인할 수 있었습니다.
요지는, SSD의 성능은 단순하게 NAND의 종류에 따라 결정되는 것이 아니라는 것입니다. SSD는 하나의 컴퓨터와 동일합니다. 상당히 복잡하며 최신 기술의 집약체라고 할 수 있죠.
다시 PM983 얘기로 돌아갑시다. 데이터시트에 적힌 4-corners performance에선 성능인 3000/1050MBps, 400k/40k IOPS를 모두 충족하였으며, 읽쓰기의 QoS 지연시간도 충족하는 것을 확인할 수 있었습니다. 하지만 cSSD 워크로드에선 보람찬 결과를 내지 못하였습니다.
eSSD 워크로드에서도 Bandwidth, IOPS만 놓고 본다면 그렇게까지 인상적인 성능은 아니었습니다. 970 PRO와 PM9E1에 밀리는 일이 많았죠. 하지만, Random Preconditioning 그래프를 본다면 굉장히 안정적인 성능임을 알 수 있었습니다.
일반 소비자가 PM983을 살 이유가 있냐 물어본다면, 성능적인 면에서는 그렇지 않다고 하고 싶습니다. PM983이 우수한 성능을 보여준 부분은 eSSD답게 소비자용 워크로드가 아니기 때문입니다. 가격적인 면에서도 eBay 기준으로 960GB 제품이 10만원이 안 되는 것을 볼 수 있는데, 이 돈이면 980 PRO를 중고로 사는게 더 현명해 보입니다.
하지만 Homelab에서 동기 쓰기 워크로드가 필요하다면... 나름 합리적인 선택이라고 생각할 수 있겠습니다. 전작인 PM963과는 가격차이가 크지 않고, 후속작인 PM9A3과는 가격차이가 조금 발생하기 때문입니다. 이러한 가격에 구매가 가능한 것은 그레이 마켓인 만큼 보증이 없는 것을 염두에 두면 괜찮을 것 같습니다.
긴 리뷰 읽어주셔서 감사합니다.
Samsung PM983 960GB 제품은 지인분께 저렴하게 넘겨받은 제품입니다. 이 글을 통해 감사인사를 전합니다.