
SSD님 "고문"의 시간입니다 [SN850X 4TB]
PCIe 4.0을 대표하는 cSSD를 꼽으라면, 아마 사람들은 비슷한 제품을 떠올릴 겁니다. SN850X도 그중 하나죠. 특히, 최근까지도 시세에 비해 할인을 보여준 이 친구는 꽤 많은 사람들이 구매해서 사용 중일 것이라 생각됩니다.
저는 PCIe 4.0은 패스하고 PCIe 5.0으로 왔지만요.

Western Digital의 WD_BLACK SN850X는 SanDisk WD_BLACK SN850X라는 어중간한 단계를 거쳐, 지금은 SanDisk Optimus GX Pro 850X로 거듭났습니다. 구성 자체는 크게 다르지 않을 것으로 생각되지만, 출시 가격은 완전 다르죠.
당시 고용량과 고성능을 원하는 사용자들은 SSD를 찾다 보면 자연스럽게 SN850X를 한 번쯤 찾아보게 되었을 겁니다.
저는 조금 다른 이유로 고용량 SN850X를 테스트해보고 싶었습니다. 일반적인 DRAM:NAND의 비율인 1:1000을 따르지 않기 때문입니다. 2TB 이상의 SN850X에 탑재된 DRAM의 용량이 2GB로 통일되어 있다는 것은 유명하죠.

벌써 5개월 전의 이야기입니다. 지난 4월, 컴퓨존에서는 SN850X 4TB 리퍼 제품이 판매되었는데, 이전에 P51 2TB를 대여해주신 ZOD의 애뽀님께서 이번에도 연락을 주셨습니다. 덕분에 이번에도 주인보다 제가 먼저 제품을 수령해서 테스트를 진행하게 되었습니다.
마침 새로운 컴퓨터를 맞추던 시기와 겹쳤는데, CPU 초기 불량과 메모리 호환성 문제까지 이것저것 사고가 생기는 바람에 거의 한 달 동안 제가 제품을 가지고 있었습니다. 정작 실제 테스트 기간은 일주일도 되지 않았지만요 ㅎㅎ;; 사실, 더 자세한 실험을 위해서는 상당히 다른 방법론들을 고민하고 적용할 필요가 있어, 대여 제품으로는 한계가 있는 것도 분명했습니다.
그래도 귀한 제품을 빌려주신 덕분에 궁금했던 SN850X 4TB의 재밌는 부분을 일부 확인할 수 있었습니다. 이 리뷰로 다시 한 번 감사드리며, 여러 의미로 기간이 지연되어 죄송하다는 말씀도 함께 전하고 싶습니다.
그럼, Western Digital의 WD_BLACK SN850X 4TB를 살펴보겠습니다.
목차
Appearance

누가 봐도 컴퓨존에서 왔다는 것이 보이는 박스입니다.

전면에서는 4TB 모델임과 동시에 2025년 11월 1일이 생산일자로 기록된 것을 확인할 수 있습니다.

후면에서는 NAND 칩 2개와 PMIC를 확인할 수 있습니다. 참고로, 단면인 1TB나 2TB 제품은 PMIC도 전면에 배치됩니다.
Internal Components
문외한의 입장에서 일부 IC만 찾아보았으며, 제조시기 등에 따라 변경될 가능성이 있습니다.


| WD_BLACK SN850X (4TB, M.2 2280) | 2025. 11. 01 |
| SanDisk 20-82-20035-B2 | SanDisk 006768 1T00 *4 |
| DDR4 2GB | 22B051 512171 |
컨트롤러는 Western Digital Triton Mp16+ (B2)를 사용합니다. 참고로, WD_BLACK SN850에 사용되는 컨트롤러는 Triton Mp16+라고 불립니다. 두 컨트롤러는 동일하게 8CH 4CE 구성이며, 1200MT/s로 NAND와 통신할 수 있습니다. TSMC 16nm FinFET 공정으로 제조되었다는 것도 동일하죠.
이름에 (B2)가 붙는 이유는 마킹의 마지막에 B2가 추가되었기 때문입니다. SN850의 컨트롤러는 20-82-X003X에다가 A1 또는 B1이 붙었지만, SN850X는 B2가 붙거든요. 이 둘의 차이점은 알려지지 않았습니다. 좀 더 넓게 SN850과 SN850X의 차이점이라고 한다면, BiCS4와 BiCS5라는 차이가 있습니다. SN850에 사용된 NAND는 정확히 BiCS4 HDR 또는 BiCS4 eX3라고 불리며, BiCS5처럼 Toggle 4.0의 1200MT/s를 지원하죠.
NAND의 차이가 컨트롤러 차이를 만들어낼 가능성도 무시 못하지만, BiCS6(Toggle 5.0 2400MT/s)를 사용하는 SN850X 8TB의 컨트롤러도 마지막에 B2가 붙었습니다. 8TB 제품은 대개 A101로 시작하는 이름을 가지고 있는 것을 확인할 수 있는데, 이는 8TB가 아닌 저용량의 SN850X에도 채용되었기에 정보가 없다는 것은 매한가지입니다.
DRAM은 DDR4 2GB입니다. 공급사는 정해져 있지 않으며, Micron, Samsung, Nanya 등을 채용하고 있습니다. 2666MT/s와 3200MT/s 칩을 혼용해서 사용합니다.
NAND는 SanDisk 006768 1T00가 4개 실장되었습니다. 각 칩은 1TB이며, 앞서 말씀드린 대로 BiCS5 TLC를 사용합니다. 엄밀하게 따지자면, SanDisk는 BiCS5 X3라는 표현을 사용합니다.
BiCS5 TLC에는 3가지 형태의 Die가 존재하는데, 어떤 Die가 실제로 사용된지는 아래에서 가능성을 검토해보겠습니다.
PMIC는 22B051 512171이라고 마킹되어 있습니다. 평소 같았으면 그냥 알 수 없기에 넘어갔겠지만, SN850은 HORUS1이라는 PMIC를 사용하는 것을 검색으로 쉽게 확인할 수 있습니다.

그리고 HORUS2라는 PMIC도 존재합니다. HORUS1처럼 STMicroelectronics에서 제조했고요. STMicroelectronics의 cSSD용 PMIC 중에선 STPMIC07M가 특히 흥미롭습니다. 4개의 스위칭 Buck 출력이 있다는 점이 SN850X의 PCB를 떠올리게 하거든요.
추측은 여기서 마무리하겠습니다. 아래쪽에서 더 긴 추측이 기다리고 있거든요.
Datasheet

데이터시트에 특별한 것은 없습니다. PCIe 4.0 x4 플래그십 SSD 다운 성능을 보여주며, 1TB 및 2TB 모델과 다르게 4TB 및 8TB 모델은 약간 더 두껍고 무거운 것을 확인할 수 있습니다.
TBW도 일반적인 TB당 600TBW를 채용하고 있네요.

참고로, GX Pro 850X의 데이터시트에는 전력 소비량도 적혀있습니다.
Notable Points
What kind of BiCS5 Die is it?
그럼, SN850X 4TB에 사용된 NAND에 대해 추정해봅시다.
결론부터 스포일러하자면, 모든 가능성이 열려있습니다.
저는 NAND의 디코더와 사양 정리표를 개인적으로 만들고 있지만, SanDisk NAND는 예외입니다. 완성은 커녕, 거의 백지거든요. 따라서, 출시 시기와 잘 알려진 정보를 통해 우리는 BiCS5 TLC라는 것을 전제로 둘 수 있습니다. 물론, 아무도 모르게 후기형은 BiCS6로 출하되었을 가능성도 무시못하죠. 한 번 추측에 추측을 거듭해봅시다.
| SN850X Capacity | 1TB | 2TB | 4TB |
| SEQ RW [MB/s] | 7300 / 6300 | 7300 / 6600 | 7300 / 6600 |
| RND RW [IOPS] | 800k / 1.1M | 1.2M / 1.1M | 1.2M / 1.1M |
SN850X의 성능 사양은 위와 같습니다. 보다시피 2TB부터 성능적으로 포화인 것을 확인할 수 있습니다. 그리고 2TB는 단면, 4TB는 양면이라는 차이가 발생하는데, 공통적으로 실장된 NAND 칩은 개당 1TB의 용량을 가집니다.
SN850X의 컨트롤러는 여타 플래그십 cSSD처럼 8CH 4CE 구성이라고 다루었습니다. 다시 말해서, 32개의 Die의 구성이 깔끔하다고 볼 수 있습니다.
그렇다면, 2TB는 512Gb Die를 사용하고 4TB는 1Tb Die를 사용할까요?
부품 분석 단계에서 말씀드렸는데, BiCS5 TLC에는 3가지 종류의 Die가 존재합니다. 512Gb Die (2 Planes), 512Gb Die (4 Planes), 1Tb Die (2 Planes)입니다. 이에 따라 SN850X 4TB에서 가능한 구성은 아래와 같습니다.
| Die | Die Count | Die / CE |
| 512Gb (2 Planes) | 64 | 2 dies / CE |
| 512Gb (4 Planes) | 64 | 2 dies / CE |
| 1Tb (2 Planes) | 32 | 1 die / CE |
모든 구성에서 컨트롤러의 32CE를 채울 수 있으며, 이러한 병렬성에 의해 데이터시트의 SEQ Write 성능은 2TB와 4TB가 동일합니다. 하지만, 데이터시트는 FOB 상태를 나타내므로 일부 성능은 반영하지 않습니다. 대표적인 예시가 SLC Cache가 소모된 이후의 속도죠.
특히, 성능이 변하지 않는 Steady State에서의 속도는 TLC NAND가 병목 지점이 될 확률이 높습니다. 이 지점에서 2TB와 4TB의 성능이 차이날 가능성이 존재하죠.
가능성을 검토해봅시다.
4TB가 2TB보다 유의미하게 빠른 경우, 4TB는 512Gb Die를 사용할 가능성이 큽니다. Die Interleaving을 통해 Die 하나가 Busy 할 때, 다른 Die로 작업을 수행할 수 있어 겉으로 드러나는 지연시간을 숨길 수 있거든요.
하지만 두 SSD의 성능이 비슷한 경우, 4TB는 1Tb 2P Die를 사용할 가능성이 있습니다. 동일한 Die 개수로 32CE를 채우니까요. 다만, NAND가 병목 지점이 아니라면 512Gb 2P Die의 가능성도 무시하진 못합니다.
그렇다면 512Gb 4P Die는 어떨까요?

우선, 근본적으로 512Gb 4P Die는 Bit Density당 Performance를 개선하기 위해 등장했습니다. 4 Planes를 도입함으로 인해 2 Planes(66MB/s)보다 2배 개선된 132MB/s라는 쓰기 속도를 얻을 수 있죠.
간단하게 계산해봅시다. 이론적인 값에 불과하지만, 4 Planes Die가 64개 있으면 132MB/s *64 = 8.448GB/s입니다. 반면, 2 Planes Die가 64개 있으면 66MB/s *64 = 4.224GB/s가 되죠. 참고로, 4TB의 SEQ Steady State는 약 3GB/s였습니다.

여기서 중요한 점이 있습니다. 이 132MB/s와 66MB/s라는 수치는 개발 중의 BiCS5 였습니다. 다시 말하자면, ES 단계라고 할 수 있겠죠. 모든 NAND와 관련된 논문들이 그렇겠지만, 이 친구는 확실하게 출하되는 NAND들과 Blocks/Plane이나 I/O 속도 등의 값이 다릅니다.
또한, 132MB/s라는 속도는 4 Planes 구성을 완전 병렬적으로 사용했을 때의 속도이며, 병렬성이 완전히 발휘되지 않는다면 낮은 속도가 나올 수도 있습니다.
어쨌든, 결론은 모든 가능성이 열려있다는 것입니다. 개인적으로는 512Gb 2P Die를 밀고 있는데, 2TB를 직접 테스트해보기 전까진 모를 것 같네요.
Game Mode 2.0
SN850X의 데이터시트에선 특이한 기능도 하나 소개합니다. Game Mode 2.0인데, SanDisk Dashboard에서 활성화가 가능합니다. SanDisk 홈페이지에서도 이 기능을 소개하는데, 간단하게 Gaming Workloads에서 성능 향상이 가능하다고 표현합니다.
기능으로는 SN850X 데이터시트에서도 등장한 ATM(Adaptive Thermal Management)와 Predictive Loading입니다. Overhead Balancing은 홈페이지 소개에서 빠졌네요.
Linux에서 확인할 때, Power State 측면에서 변화가 있었습니다. 각 이미지의 우측이 Game Mode가 켜진 상황입니다.
Game Mode를 활성화 하는 것은 SanDisk Dashboard가 Windows에서만 사용이 가능하기에 OS 의존적이라고 할 수 있지만, 해당 설정이 활성화가 된 이후에는 그렇지 않다는 것도 볼 수 있습니다.
Host가 장시간 IDLE인 상황에서도 SSD가 즉각적으로 반응할 수 있어, 지연시간의 감소가 기대되네요.
다만, Game Mode가 버전이 나뉘어져 있다는 것을 생각하면, 단순히 Power State의 전이를 막는 것에 끝나지 않는, 좀 더 세밀한 기술이라고 생각됩니다.
SW Report

리퍼 제품인데 거의 새 제품에 가까웠습니다. 제가 성능 측정을 진행하며 많이 닳아버렸지만요.
온도 센서는 하나로 보이며, smartmontools와 NVMe-CLI의 id-ctrl 결과는 GitHub에 첨부하도록 하겠습니다.
DUT Summary
벤치마크를 진행할 SSD에 관한 요약입니다.
Western Digital WDS400T2X0E-00BCA0 [WD_BLACK SN850X 4TB] | |||
| Link | PCIe 4.0 x4 | NVMe Version | NVMe 1.4 |
| Firmware | 624361WD | LBA Size | 512B / 4096B |
| Controller | WD Triton Mp16+ (B2) | Warning Temp | 90 °C |
| Storage Media | BiCS5 X3 112L TLC | Critical Temp | 94 °C |
| Power State | Maximum Power | Entry Latency | Exit Latency |
| PS0 | 9.00 W | 0 μs | 0 μs |
| PS1 | 6.00 W | 0 μs | 0 μs |
| PS2 | 4.50 W | 0 μs | 0 μs |
| PS3 | 0.0250 W | 3100 μs | 11900 μs |
| PS4 | 0.0050 W | 3900 μs | 45700 μs |
Game Mode 2.0을 활성화하면 표에서 PS1 이하가 사라지는 것을 빼고는 동일합니다.
펌웨어에 대해 말씀드리자면, 1TB와 2TB 제품은 펌웨어를 공유합니다. 620XXXWD형태입니다. 4TB 제품은 단독으로 624XXXWD형태고요. 그럼 8TB 제품은 예상이 되시나요? 아마 틀렸을겁니다. 638XXXWD입니다.
4TB와 8TB의 펌웨어가 1TB/2TB와 다른 이유는 역시 DRAM:NAND 비율이 다르다는 이유가 가장 크다고 생각합니다. 8TB 단독으로 두 번째 숫자가 3인 이유는 잘 모르겠으나, SN850X 중 8TB 모델만 NVMe 2.0을 지원합니다. 흥미롭지 않나요?
그렇다고 두 번째 자리의 숫자가 NVMe 버전을 뜻하는 것은 아닙니다. 이는 다른 SanDisk/WD의 SSD를 조금만 찾아봐도 기각할 수 있는 가설이거든요.
Comparison Device
이번 리뷰는 임시로 제작한 Testbed를 사용해 비교군이 없습니다. 아래를 참고해주세요.
Test Platform
테스트 환경은 위와 같습니다. Windows 25H2(26200.6899)에 종속되는 도구들을 제외하고는 모두 FIO 3.41을 통해 Rocky Linux 10(6.12.0-55.12.1.el10_0)에서 실행되며, io_uring과 Polling을 적극적으로 활용합니다. 또한, 양쪽 다 기본 Inbox Driver를 사용합니다.
그리고 위에서 말씀드린 것처럼, 테스트 시스템의 사양이 달라졌습니다. 270K Plus로 업그레이드를 진행했는데, 자세한 것은 9600X 시스템으로 데이터를 수집했던 SSD들의 리뷰를 마치고 다른 글로 올리겠습니다. 우선, 간단하게 사양을 표로 보시죠.
| CPU | Intel Core Ultra 7 270K Plus | OS에 따라 코어 수 변화 |
| MainBoard | ASUS ROG STRIX B860-I GAMING WIFI | BIOS 3011 / ME 19.0.5.2175v0.3 |
| RAM | T-CREATE EXPERT DDR5-6000 CL34 32GB *2 | no XMP / JEDEC Std. |
| SSD (OS) | Samsung PM981a 256GB *2 | |
| PSU | Corsair SF750 ATX3.1 | |
| Case | Sunmilo H02 | |
| Cooling | Noctua NH-D9L + Noctua NF-A8 PWM | Full Speed |
| Cooling | Noctua NF-A8 PWM | Full Speed |
| M.2 AIC | ASUS ROG PCIE 5.0 M.2 CARD | |
| IP-KVM | Sipeed NanoKVM | 1920x1080 |
OS는 새로 설치했습니다. 특이사항이 있다면, Windows에서 벤치마크를 진행할 때는 모든 코어를 활성화하였으며, Linux에서 진행할 때는 P코어만 활성화하여 진행했습니다. ASPM등 절전과 관련된 기능은 비활성화했습니다.
메모리도 XMP는 비활성화시키고 JEDEC 표준(4800MT/s CL40)으로 성능을 측정했습니다. 또한, CPU를 식히기 위해서 NH-D9L 뒤에 NF-A8을 추가로 설치했습니다. 거기에 더해 선풍기도 꺼내 평상시보다 강력한 공기 흐름을 만들었습니다. 이렇게하여 갑작스럽게 발생하는 높은 부하로 인한 Thermal Throttling은 방지할 수 있었습니다. (글을 작성하며 느낀건데, D9L은 여름을 버티지 못했을 것 같습니다.)
DUT인 SN850X는 기존에 사용하던 어댑터를 이용해 PEG 슬롯에 장착되었습니다. 이 어댑터는 별개의 NF-A8을 이용해 냉각을 진행합니다.
벤치마크 방법론에 대해서는 이전에 작성한 Refresh Benchmark를 참고해 주시길 바랍니다.
cSSD Benchmarking
start /wait Rundll32.exe advapi32.dll/ProcessIdleTasks Windows에서는 위의 명령어를 실행하고 15분 뒤를 IDLE 상태로 정의해 벤치마크를 진행합니다. 각 벤치마크 사이에는 5분의 휴식 시간이 부여되며, Purge는 Linux에서 nvme format 명령어를 통해 수행했습니다.
CrystalDiskMark 9.0.2
좌측이 기본값, 우측이 Game Mode를 활성화한 결과입니다.
또한, 데이터시트의 SEQ Read 속도인 7300MB/s를 만족하지 못하는 모습을 보여주고 있습니다. 나머지는 다 만족하는데 말이죠.

이 7300MB/s라는 값은 대개 AMD 플랫폼에서 확인할 수 있습니다. SN850X의 CDM 결과에서 SEQ Read 항목이 7000MB/s가 넘는다면, 대부분 AMD 플랫폼에서 진행한 테스트 결과일 것입니다.
이러한 현상은 Intel과 AMD 플랫폼의 MPS(Max Payload Size) 차이가 크게 작용합니다. MPS에 대해서는 P51 리뷰에서도 볼 수 있었는데, 정확히는 데이터시트에서 "MPS 512B에 한정"이라고 표현되었죠. 참고로, MPS 512B라는 것은 사실상 소비자 환경에서는 AMD를 지칭하는 것이나 다름없습니다.

Intel ARL의 MPS는 256B이거든요. 간단하게 설명드리자면, 하나의 PCIe TLP(Transaction Layer Packet)에 담을 수 있는 최대 Payload의 크기라고 생각하시면 됩니다. Payload에는 Header등이 추가되기에 같은 양의 데이터를 보내더라도 MPS가 작으면 더 나누어 보내야합니다. 다시 말해, Overhead가 발생하는거죠.
언젠가 PCIe에 대해서도 다뤄보고 싶네요. 생각보다 재밌거든요.


CDM 결과는 AMD와 Intel 플랫폼 사이에 차이나는 128k Read 속도가 눈에 띄며, 동시에 Game Mode를 활성화했을 때는 4k QD1 쓰기 속도가 꽤 상승한 것을 확인할 수 있었습니다.
참고로, 9800X3D에서 진행한 SN850X의 테스트는 CDM 뿐입니다. 제 컴퓨터가 아니거든요.
3DMark Storage Benchmark

3DMark는 Game Mode를 켜나, 드라이브를 적당히 채우나 큰 차이가 없었습니다.
SPECworkstation 4.0

SPECworkstation에서도 큰 차이는 없었습니다.

특히 3dsmax 워크로드는 4회의 테스트 전부 SPEC Ratio가 1.09로 나왔습니다.
Fill Drive
나래온 더티테스트와 비슷한 벤치마크입니다. FOB상태로 시작하여, SEQ 128k QD256으로 드라이브 전체를 2회 채우며, 0.1s 단위로 값을 측정합니다. 1회차와 2회차 사이의 휴식은 충분히 부여됩니다.

1회차에서는 1.2TB의 SLC Cache 용량이 측정되었습니다. 평균적으로 6655MB/s의 속도를 보였으며, 중앙값은 6693MB/s 였습니다.
SLC Cache 구간이 종료되면 속도가 급락하며 평균적으로 1808MB/s의 값을 보입니다. 다만, 이는 두 부류로 나뉘는데, Folding과 실시간으로 들어오는 데이터로 인해 발생하는 저속 구간은 평균적으로 1.6GB/s ~ 1.7GB/s의 속도가 측정됩니다.
반면, Folding을 통해 재구성된 공간에 데이터를 쓰는 것은 평균적으로 3GB/s의 속도를 보여주고요.
WD=SanDisk에서는 이를 nCache 4.0이라고 부르는데, 우리가 흔히 동적 SLC 캐시 또는 Dynamic SLC Cache라고 부르는 기술입니다. (엄밀히는 Hybrid 형태라고 해야겠죠.)

2회차에서는 약 50GB의 SLC Cache 용량이 실측되었습니다. 이때의 평균값은 6591MB/s, 중앙값은 6637MB/s 였습니다.
SLC Cache를 벗어난 구간의 평균은 2981MB/s이며, 중앙값은 3072MB/s 였습니다. 하위 1%의 값은 2293MB/s 였고요.

첫 번째와 두 번째의 Fill Drive에 대한 전체 평균값은 약 2610MB/s 였습니다.

첫 번째 Fill Drive에 대한 하위 1% 속도는 1310MB/s가 산출되었고요.
Sync Performance
자체적인 Pre-Conditioning 이후, 해당 영역에 한해서 측정됩니다. 쓰기량은 총 500MiB이며, 최대 소모 시간은 2분으로 제한합니다. sync=1 옵션을 활용했습니다.

25MB/s의 속도로 진행되었습니다.
Low QD Performance by RW Ratio
이전과 마찬가지로 Pre-Conditioning 이후에 측정하며, Burst 성능을 측정하기 위해서 각 단계에서 가해지는 I/O의 양은 GB 단위가 되지 않습니다. 다시 말해, 매우 가벼운 부하입니다. 전체 용량의 75%는 이미 채워져 있지만요.

Weighted Graph
QD1 80%, QD2 15%, QD4 5%로 가중치를 부여해 보기 쉽게 나타냅니다.

Game Mode의 유무는 유의미한 차이를 만들지 않았습니다.

완전한 읽쓰기를 제외하고 산출한 평균값입니다. 약 220MB/s의 속도가 계산되었습니다.
SLC Cache Reclaim
SLC 캐시의 회복에 대해서 알아보기 위해 설계되었습니다. Purge를 수행하고, User Capacity의 50%를 SEQ 128k QD256로 채운 뒤, 잠깐의 휴식을 취합니다. 이후, SEQ 128k QD256 쓰기를 1분간 진행합니다.
이 휴식 시간을 늘리며 테스트를 6회 진행합니다. 그래프들은 휴식 이후 1분간의 I/O에 대한 결과입니다.

보시는대로 아주 깔끔한 그래프입니다. 50%를 채운 뒤, 5분이 넘는 휴식 시간은 SLC Cache 회복에 영향을 주지 않았습니다.

특히, SLC Cache를 벗어난 이후의 속도 기울기는 다들 동일했습니다.
eSSD Benchmarking
Purge 직후를 제외한 모든 단계 사이에는 휴식 시간이 부여되지 않습니다. Pre-Conditioning은 User Capacity의 2배를 쓰고나서도 Steady State에 진입할 때까지 이를 계속 진행합니다.
Steady State는 SEQ의 경우엔 대역폭의 기울기가 ±10%인 상태를 30초간 유지하는 것을 기준으로 하며, RND의 경우에는 IOPS의 기울기가 ±10%인 상태를 30초간 유지하는 것을 기준으로 합니다. 이를 달성할 수 없을 땐 User Capacity의 23배까지 쓰기를 진행합니다.
모든 워크로드는 User Capacity의 전체 영역에 대해서 진행하며, 각각 30초의 적응 시간을 가진 후에 5분 동안 성능측정을 진행합니다. 다시 말해, 128k Read 성능을 측정한다면 QD1 ~ QD256까지 총 9개의 작업이 있으며, 모든 작업이 30초의 적응 시간과 5분의 측정시간이 부여됩니다.
역시 자세한 벤치마크 방법론에 대해서는 이전에 작성한 Refresh Benchmark를 참고해주시길 바랍니다.
4-Corners Performance
SEQ Pre-Conditioning


SEQ Pre-Conditioning은 52분이 소모되었으며, 3071MB/s로 Steady State에 진입했습니다.
SEQ 128k Performance


| SSD | SN850X 4TB |
| 128k SEQ Read | QD1 3281MB/s@34µs QD2 3997MB/s@64µs QD16 6921MB/s@289µs |
| 128k SEQ Write | QD1 3039MB/s@34µs |
128k SEQ Read은 QD1 → QD2 → QD16에서 변화가 가장 컸습니다.
128k SEQ Write는 QD2에서 3069MB/s@75µs가 측정되었는데, 그 이후로 동일한 속도였습니다.
RND Pre-Conditioning


RND Pre-Conditioning에는 1일 18시간이 지나도 끝나지 않았습니다.
지금까지 블로그에 업로드한 리뷰 중 RND Pre-Conditioning이 가장 길었던 것은 870 EVO 4TB였습니다. 27시간을 소모하여 19.4k IOPS로 Steady State에 진입할 수 있었죠. 그 다음으로는 P31 2TB(12시간)이었고요.

앞서 제시한 IOPS 그래프를 70k IOPS로 제한하고 그린 그래프입니다. 사실, 70k IOPS가 넘는 값은 가장 처음의 472k IOPS에 해당하는 점 하나였거든요.
아무튼, 15만초라는 폭력적인 시간 동안 SN850X가 RND Pre-Conditioning으로 기록한 것은 단 3.71TB였습니다. 그럼, 이 시간과 비슷할 정도로 더 기다리면 될까요?
첫 57분은 평균적으로 31.3k IOPS의 속도로 비교적 안정적인 모습을 보였습니다. 하지만, 그 이후로 속도가 급격하게 하락하며 6시간인 포인트까지의 평균은 9.33k IOPS였습니다.
6시간 이후는 이 속도로 쭉 유지되었을까요? 그렇지 않습니다. 6시간 이후의 평균값은 4.86k IOPS 였으나, 중앙값은 2.56k IOPS에 불과했습니다. 사실 이 값은 단순히 평균값으로 보기가 힘든데, 아래 표를 참고해주세요.
| State | median IOPS | median latency |
| Low Speed (<2k) | 1.18k IOPS | 221 ms |
| High Speed (7k~12k) | 9.6k IOPS | 27.2 ms |
저속인 구간과 고속인 구간이 반복되어 나타났습니다. 이 결과로 인해 평균값이 약 5k IOPS로 측정되었던 것이죠.
5k IOPS는 약 20MB/s에 해당하는데, 상당히 느린 편이라고 할 수 있습니다. 하지만, 더 큰 문제가 2개나 있습니다.
그래프에선 크게 눈에 띄지 않지만, 속도 추세는 점점 느려지는 형태였습니다. 6시간 이후로 860GB를 쓸 때는 10시간이 소모되었지만, 그 이후로 같은 양을 쓸 때는 12시간, 14시간으로 더욱 늘어났습니다.
더욱 심각한 것은 I/O가 사실상 일시중단되는 현상입니다. 100ms마다 IOPS와 지연시간을 기록하는데, 기록에는 비어있는 구간이 다수 발생했습니다. 이 간격은 최소 2800ms, 최대 4300ms이었는데, 전부 합치면 약 21분이었습니다.
지연시간 그래프에서도 이를 확인할 수 있는데, 1000ms를 넘는 지연시간은 전부 I/O가 일시중단된 직후에 나타납니다. 수 초간 완료되지 않고 대기하던 I/O가 처리되면서 높은 지연시간을 기록한 것이죠.
이러한 이유로 인해 RND Pre-Conditioning은 직접 중단했습니다.
RND 4k Performance

| SSD | SN850X 4TB |
| 4k RND Read | QD64 345k IOPS@182µs |
eSSD Benchmarking의 RND Read들은 RND Pre-Conditioning없이 진행했습니다. SEQ Pre-Conditioning을 통해 DUT가 128k 단위로 가득 채워져있다면, 더 작은 Block Size의 읽기에는 일단 지장이 없거든요.
결과는 위와 같이 QD64이후 345k IOPS로 통일되었으며, Low QD에서는 QD1에서 11k IOPS, QD2에서 21k IOPS, QD4에서 42k IOPS로 2배씩 성장하는 모습을 보여주었습니다.
4-Corners Consistency
QD에 따른 4-Corners Performance의 안정적인 정도를 제시합니다. 상위 99.9%값과 평균을 이용하는데, SEQ 128k에서는 Bandwidth를 기준으로, RND 4k에서는 IOPS를 기준으로 계산합니다. 참고로, RND 4k에서 QD1에 대한 값은 이후 Tail Latency에서 자세히 살펴보기에 제외됩니다.

지금까지 테스트해온 다른 SSD들에 비해 Consistency가 상당히 뒤떨어진다는 느낌을 받았습니다. 구체적으로는 모든 읽기에서 95%를 넘지 않았다는 점이 돋보입니다.
Specific Workload Performance
4-Corners Performance가 아닌 워크로드를 분리했습니다. 단, 워크로드 이름은 편의상 붙인 것뿐이며, 실제 환경에서는 다양한 Block Size와 RW 비율이 나타난다는 것을 명심해야 합니다. Block Size들의 정확한 비율과 RW 비율을 결정하기 힘들어 대략 분류한, 가상의 워크로드입니다.
Boot Workload (OCP BootBench)
Hyperscale에서의 Boot Drive로 사용될 때의 성능을 측정하는 벤치마크입니다. SEQ Write로 User Capacity가 2번 채워지면, 동기 쓰기, TRIM, 읽기가 동시에 가해지며, 결과의 지표는 읽기 IOPS입니다. 60k IOPS를 통과하면 합격입니다.

결과는 상당히 상위권이었습니다. 테스트 시스템이 다르기에 그래프에선 제외했지만, 지금까지 블로그에 올린 리뷰 중에선 P51 2TB(429k IOPS)가 압도적인 1위였고, 그 뒤를 PM9E1 1TB(187k IOPS)와 7450 MAX 1.6TB(182k IOPS)가 따릅니다.
사실 상위권일 수 밖에 없는 이유가, 제가 리뷰한 제품의 상당수가 구형이라는 걸 생각하면... 당연하기도 하네요.
RND 512B Read

| SSD | SN850X 4TB |
| RND 512B Read | QD32 219k IOPS@145µs QD64 219k IOPS@289µs |
| RND 4k Read | QD32 279k IOPS@114µs QD64 345k IOPS@182µs |
RND 512B Read에서는 4k에 비해 뒤떨어지는 것을 확인했습니다. 특히, 4k에서는 QD32를 넘어 QD64에서 포화되는 모습을 관찰했으나, 512B에서는 QD32에서 포화되었습니다.
Random 4k QD1 Tail Latency
Latency에서 가장 느린 구간을 의미합니다. 그렇기 때문에 QoS(Quality of Service)에 큰 영향을 미치고, 실제로 eSSD의 데이터시트에서는 QoS를 명시하고 있습니다.
여기에선 100ms나 10ms 단위가 아닌, 모든 개별 I/O에 대한 지연시간을 카운트하여 그래프를 그립니다. 그렇기 때문에 데이터가 상당히 방대해, 이 항목은 RND 4k QD1에 대해서만 진행합니다.

| RND Read | Datasheet | Benchmark Result |
| Typical Value | - µs | 80 µs |
| QoS (99.999%) | - ms | 1.483 ms |
지연시간은 뒤쳐진다는 느낌을 받았습니다. 다만, 이것이 일반적인 소비자 워크로드는 아니라는 것에 유의해주세요.
99.999% 지연시간 기준으로는 P31이 떠오르기도 하지만, 테스트 시스템이 다르니 직접적인 비교는 불가능합니다.

Tail Latency보다 이것이 더 흥미로울 수도 있겠네요. 테스트 시스템은 다르지만, 쉬운 비교를 위해 같은 그래프에 넣어봤습니다. 전부 Steady State입니다.
RND Pre-Conditioning에서도 여러 지연시간이 관찰되었죠? 읽기에서는 I/O가 멈추는 현상은 없었지만, 꽤 다채로운 모습을 보였습니다.
SN850X 4TB는 다른 SSD에 비해 Percentile간 격차가 크고, 여러 단계로 나뉘는 모습을 보였습니다. 이렇게 전체 영역에 접근하는 랜덤 워크로드에서 SN850X는 I/O마다 다른 처리를 거치는 것으로 예상되는데, 역시 2GB의 메모리가 Mapping Table을 전부 Caching하지 못해 Hit/miss를 반복할 것이고, Metadata를 조회하는 데에도 추가적인 지연시간이 소모된 것으로 보입니다.

반대로, locality가 높은 작업에서는 적절하게 해당 구역에 대한 Caching을 진행하는 것으로 보입니다. (1st, 2nd 등이 cSSD Benchmarking의 데이터를 활용한 것입니다.)
이는 최신 cSSD일수록 그 경향이 큰데, Steady State와 직접적인 비교는 불가능하지만, 그래프가 수평으로 이동하는 것처럼 보이는 것도 확실합니다.

보통은 이렇게 수직으로 이동하는 것처럼 보이거든요.

또는 이렇게 큰 차이가 없는 경우도 있습니다.
Closing
SN850X 4TB에서 가장 눈에 띄었던 것은 역시 무작위 접근에 대한 성능이겠죠. 특히, 아직 공개하지 않은 데이터들을 포함하더라도 I/O가 완전히 멈추는 현상은 처음입니다. 그렇지만, 이는 DRAMless SSD에서 더 확실하게 보일 것으로 예상됩니다. 이것이 제가 OCP BootBench의 결과를 eSSD Benchmarking의 시행여부로 삼은 것이라고도 할 수 있습니다.
어쩌면 이번 성능 측정의 결과가 "eSSD에는 왜 DRAMless SSD가 존재하지 않으며, 어째서 대부분 차고 넘치는 DRAM이 실장되었는가?" 에 대한 질문도 어느정도 해결했으리라 생각합니다.
SN850X 4TB의 데이터분석은 꽤 시간이 걸렸는데, 분석의 과정에서 Performance by Active Range 단락은 제외하게 되었습니다. 측정은 여러 번 진행하였고, 접근 범위가 넓어질수록 성능이 하락하는 것도 관찰하였지만, 이번 측정에서는 충분한 I/O가 발생하지 못한 것으로 판단했거든요.
추후 기회가 된다면 다시 도전함과 동시에 더 세밀한 방법론을 고민하고자 합니다. 당장은 가격이 좀 부담되어서 힘들겠고 몇 년 후에나 가능할 것 같네요 ㅎㅎ;; 제 졸업과 취업이 빠르겠습니다.
이번 리뷰는 임시 테스트 시스템을 통해 진행되었는데, 당분간은 9600X 시스템에서 측정한 데이터를 전부 소모하고 270K Plus 기반의 시스템을 소개해보도록 하겠습니다. 이 시스템에서는 더 발전된 새로운 방법론을 적용하고자 계획 중입니다.

별도로, BiCS5 4 Plane이 등장한 논문에는 더 재밌는 기술들도 많이 소개되었습니다. 나중에 언젠가 소개해보고 싶은데, 정말 쓰고 싶은 주제만 계속 늘어나고 있네요. 졸업과제도 준비하며 블로그에 정리해야하는데 말이죠.
그럼, 다음은 9600X 시스템 기반의 SN8100 2TB의 리뷰로 찾아뵙겠습니다.
제품을 빌려주신 ZOD의 애뽀님께 다시 한 번 감사인사와 지연에 대해 죄송하다는 말씀을 전합니다.












Comments