
캐싱, 그만둡니다 ~다음 직장은 NVMe SSD~ [Optane Memory 32GB]
Intel의 Optane SSD는 저장장치에 관심이 있다면, 한 번쯤은 써보고 싶은 물건이라고 확신합니다.
가격이 굉장히 비싼 것으로 유명하지만, 용량이 한참 작은 친구라면, 장난감을 구매하는 느낌으로 도전할 수 있습니다.

이런식으로 말이죠.
Optane Memory 제품군은 Optane SSD와 동일하게 3D XPoint를 기반으로 제작된 드라이브입니다. 제품의 의도는 저장용이 아닌 가속용이지만요. 그럼에도 불구하고, 다행히 NVMe 프로토콜을 지원하기에, Windows나 Linux에서 Plug-and-Play로 사용이 가능합니다.
오늘은 이러한 Optane Memory를 평범하게 NVMe SSD로 취급하여 성능을 측정해보겠습니다.
목차
Appearance & Internal Components
문외한의 입장에서 일부 IC만 찾아보았으며, 제조시기 등에 따라 변경될 가능성이 있습니다.
맞지 않을 확률이 상당히 높으니 재미로만 읽어주세요.

| Intel Optane Memory (32GB, M.2 2280) | 20XX. 0X. |
| Intel SLLXT | RT5064A |
| Intel 29P16B1BLDNF2 *2 | 4L652 0E369V |
바로 내부 부품부터 확인해보죠.
컨트롤러는 Intel SLLXT를 사용했습니다. In-house 컨트롤러로, PCIe 3.0 x2 인터페이스를 지원합니다.
저장매체는 Intel 29P16B1BLDNF2이며, 128Gb인 1세대 3D XPoint가 SDP(Single Die Package)로 구성되었습니다. 다시 말해, 칩 하나가 128Gb = 16GB이며, 2개의 칩이 총합 32GB의 용량을 구현합니다.
905P 960GB와 P4800X 750GB의 리뷰를 통해 Optane SSD에는 생각보다 상당한 양의 OP가 적용되었다는 것을 말씀드린적이 있습니다. 32GB라고 홍보하는 이 SSD도 실제로는 엄밀히 따지면, 17%의 OP가 적용되어 상당한 용량을 User Capacity로 사용할 수 없습니다.
PMIC는 RT5064A인데, 제조사는 Richtek으로 보입니다.

후면에 실장된 소자는 없습니다. 푸른색의 PCB나 보고 가시죠.
Datasheet

Product Brief는 성능과 여러 요소를 보여주고 있습니다. 일단 소비자용 저장장치인데, 지연시간과 성능의 기준점(QD4)을 자세하게 제시해 주었다는 것은 상당히 맘에 듭니다.
Enduranec Rating은 100GB/Day이며, 단순히 환산한다면 약 3DWPD로 볼 수 있습니다. 이는 Write Intensive eSSD와 유사하다고 볼만한 등급입니다. 물론, 용량이 32GB로 작기에 보증 TBW는 182TB에 불과하지만요.
지원하는 것은 7세대 이상의 Intel Core 기반 플랫폼이라고 지정되어 있습니다. 물론, 앞에서 말씀드린 것처럼, 일반적인 NVMe SSD로 취급할 수 있습니다. Supported Platforms의 내용은 본래 Optane Memory 시리즈의 의도인 가속 기능을 의미하며, 이는 공식적으로 7세대부터 11세대까지 지원합니다. 12세대부터는 지원이 중단되었거든요.
Notable Points
Optane Memory Lineup

Optane Memory 제품군은 크게 두 종류로 볼 수 있습니다.
첫 번째는 Hybird 형태로, NAND 기반의 SSD와 Optane Memory가 하나의 기판에 실장된 H시리즈입니다. (H10, H20) Optane Memory가 NAND SSD를 가속하는 형태인데, 이는 전적으로 Intel RST에 의해 이루어집니다. 다시 말해, 하드웨어가 아닌 호스트에 설치된 소프트웨어에 의존한다는 것입니다. 이로 인한 장단점은 존재하겠으나, 저는 CPU 리소스 측면에서 맘에 들지 않네요.
공식적인 지원은 역시 종료되었으며, 최신 플랫폼에선 본래 의도대로 사용은 할 수 없습니다. 다만, H10과 H20 시리즈는 그 특유의 구조에 의해 호스트에 개별 SSD로 노출됩니다. 이에 PCIe Lane을 x2x2로 분기한다면 최신 플랫폼에서도 정상적으로 두 영역을 인식할 수 있습니다.
하지만, 이러한 분기는 우리가 일반적으로 사용하는 CPU에서는 지원하지 않습니다. 이러한 분기를 지원하는 비교적 흔한 CPU는 ADL-N 시리즈 아닐까요? ADL-N은 보유한 PCIe Lane을 전부 개별로 사용할 수 있거든요. 적절하게 구성한다면 두 영역을 별개의 SSD로 사용이 가능할 것으로 보입니다.

두 번째는 순전히 다른 드라이브나 시스템의 가속을 위해 Optane Memory만 실장된 M 시리즈입니다. 여기서도 세부 라인업은 크게 2가지인데, 먼저 출시된 Intel Optane Memory 시리즈와 이후에 출시된 Intel Optane Memory M10 시리즈가 있습니다.
M10은 전작과 다르게 M.2 2242 폼팩터나 비교적 고용량의 SKU를 보유하고 있습니다. 32GB를 기준으로 비교해보겠습니다. 아래 표는 Intel Ark를 참고했습니다.
| Product (32GB SKU) | Intel Optane Memory | Intel Optane Memory M10 |
| Release Date | Q1'17 | Q1'18 |
| SEQ RW [MB/s] | 1350 / 290 | 1200 / 290 |
| RND RW [IOPS] | 240k / 65k | 240k / 65k |
| Active / IDLE [W] | 3.5W / 1W | 2.5W / L1.2: 8mW |
| Operating Temp [°C] | 0 - 70 | 0 - 85 |
| Endurance | 182.5 TB | 365 TB |
M10 시리즈에는 PCIe L1 Sub-states를 지원하도록 개선된 컨트롤러가 있으며, 이 덕분에 확연하게 낮아진 IDLE 전력을 확인할 수 있습니다. 2배로 증가한 TBW도 눈에 띄는데, TBW는 M10 시리즈가 모두 365TB라는 값을 공유하고 있습니다.
제가 오늘 리뷰할 친구는 M10이 아닌, 먼저 출시된 Intel Optane Memory 시리즈입니다.
SW Report

수명이 6%나 닳았네요.
smartmontools와 NVMe-CLI의 id-ctrl 결과는 GitHub에 첨부하도록 하겠습니다.
DUT Summary
벤치마크를 진행할 SSD에 관한 요약입니다.
INTEL MEMPEK1W032GA [Intel Optane Memory] | |||
| Link | PCIe 3.0 x2 | NVMe Version | NVMe 1.1 |
| Firmware | K3110310 | LBA Size | 512B |
| Controller | Intel SLLXT | Warning Temp | X °C |
| Storage Media | Intel 3DXP G1 | Critical Temp | X °C |
| Power State | Maximum Power | Entry Latency | Exit Latency |
| PS0 | 4.50 W | 0 μs | 0 μs |
참고로, Optane Memory M10 시리즈의 PN은 MEMPEK1J~로 시작하며, 비교할 때 본 것과 같이 더 많은 Power State를 지원합니다.
Comparison Device
비교군은 아래와 같습니다.
| Name | Why? |
| P4800X 375GB [E2010650] | 동일하게 3D XPoint 1세대를 사용한 저장장치 |
| PM981a 256GB [EXH7201Q] | 저용량의 NAND 기반 NVMe SSD |
PM981a 256GB을 비교군으로 삼는게 사실 애매한데, 그래프 뽑은 김에 후딱 끝내도록 하겠습니다.
쌓인 데이터가 다 녹아내린다면, 비교군을 늘려 NAND SSD와 Optane SSD를 다시 비교해보도록 하겠습니다.
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를 사용합니다.
HW 사양에 대해서는 상단 우측의 fastfetch를 통해서 확인할 수 있지만, 다시 언급하자면, AMD의 9600X를 사용하고 있습니다. DUT는 5.0 x16 연결이 가능한 PEG 슬롯에 장착됩니다.
추가로, Intel의 Evaluation Guide를 따라, 모든 성능 측정 전에는 3시간 동안 전원을 켜두었습니다.
자세한 벤치마크 방법론에 대해서는 이전에 작성한 Refresh Benchmark를 참고해 주시길 바랍니다.
cSSD Benchmarking
start /wait Rundll32.exe advapi32.dll/ProcessIdleTasks Windows에서는 위의 명령어를 실행하고 15분 뒤를 IDLE 상태로 정의해 벤치마크를 진행합니다. 각 벤치마크 사이에는 5분의 휴식 시간이 부여되며, Purge는 Linux에서 nvme format 명령어를 통해 수행했습니다. 다만, Optane SSD의 특성상, 시간 초과를 방지하기 위해 timeout 값을 길게 주었습니다.
CrystalDiskMark 9.0.1



명시된 스펙은 SEQ과 RND을 가리지 않고 초과하여 달성하는 모습입니다. 제품의 출시일을 생각하면 당연하지만요.
특히, RND 4k QD1 읽기 성능이 300MB/s를 초과해, 그 어떤 쓰기 성능보다 우수한 것도 살짝 재밌는 현상입니다.
3DMark Storage Benchmark

3DMark Storage Benchmark는 Windows 기준으로 비어있는 공간이 30GB가 되어야합니다. CDM의 실행 사진에서 확인할 수 있지만, Windows는 이 SSD를 27GB로 인식합니다. 따라서 실행이 불가능하므로 패스합니다.
SPECworkstation 4.0

SPECworkstation에서도 종합적인 SPEC Ratio를 산출하는 것은 불가능합니다.

7zip 워크로드의 요구사항에 대해 용량을 불만족하기 때문인데, 나머지 워크로드에 대해서는 실행이 가능한 것을 확인할 수 있습니다.
Fill Drive
나래온 더티테스트와 비슷한 벤치마크입니다. FOB상태로 시작하여, SEQ 128k QD256으로 드라이브 전체를 2회 채우며, 0.1s 단위로 값을 측정합니다. 1회차와 2회차 사이의 휴식은 충분히 부여됩니다.

드라이브를 채우는 중, 40초와 70초 경에 쓰기 성능이 튀어오르는 것을 볼 수 있습니다. P4800X 750GB에 이어 이 친구도 뽑기를 잘못한걸까요?
FOB상태에서 진행했을 때, 재현이 가능한 현상이었습니다. 다만, Windows의 CDM에서는 정상적으로 높은 속도가 측정된 것을 생각할 때, Linux에서의 테스트 조건이 영향을 주었을 가능성도 있습니다.

휴식을 부여하고 2회차로 들어서면, 1회차와 다르게 안정된 모습을 보입니다. 높은 속도로 말이죠.

첫 번째와 두 번째의 Fill Drive에 대한 전체 평균값은 위와 같습니다. PCIe 3.0 x2의 인터페이스에 대한 병목이 아닌, 컨트롤러에 걸린 제한으로 인해 Optane Memory의 쓰기 성능은 최대 300MB/s로 제한됩니다.

첫 번째 Fill Drive에 대한 하위 1% 속도입니다. 하위 1% 값은 평균값과 가까운 편이나, 쓰기 속도의 절대적인 값이 느려 비교군 중 가장 나쁜 결과를 보였습니다.
Sync Performance
자체적인 Pre-Conditioning 이후, 해당 영역에 한해서 측정됩니다. 쓰기량은 총 500MiB이며, 최대 소모 시간은 2분으로 제한합니다. sync=1 옵션을 활용했습니다.

이전에도 말씀드렸지만, 제대로된 eSSD에선 동기와 비동기 쓰기의 성능에 차이가 발생하지 않습니다. Optane Memory는 일단 cSSD로 분류되지만, 3D XPoint 기반의 저장장치라는 점에서 SCM급이라고도 볼 수 있습니다.
절대적인 쓰기 성능은 낮지만요.
Low QD Performance by RW Ratio
이전과 마찬가지로 Pre-Conditioning 이후에 측정하며, Burst 성능을 측정하기 위해서 각 단계에서 가해지는 I/O의 양은 GB 단위가 되지 않습니다. 다시 말해, 매우 가벼운 부하입니다. 전체 용량의 75%는 이미 채워져 있지만요.

이 또한 NAND SSD에선 볼 수 없는 그래프의 개형입니다. 쓰기 속도가 제한되어 NAND SSD의 그래프와는 완전히 다른 모습이죠.
특히, 쓰기 비율이 높아질수록 QD2와 QD4의 성능 차이가 굉장히 줄어든 것도 있습니다. Polling 환경에서의 쓰기는 QD2가 사실상 포화되는 지점이었습니다.
그래프를 유심히 보셨다면 QD1의 읽기 성능도 상당히 놀라울 것 입니다. 여태껏 그 어떤 드라이브에서도 볼 수 없었던 700MB/s에 가까운 수치를 보여주니까요. 이는 전적으로 Linux 기반의 테스트에서 Polling을 활용하기에 도달 가능한 수치입니다. Windows에서는 아직 보기 힘든 수치죠.
Weighted Graph
QD1 80%, QD2 15%, QD4 5%로 가중치를 부여해 보기 쉽게 나타냅니다.

동일하게 3D XPoint를 사용하였지만, P4800X와 그래프의 모양이 다릅니다. 이유는 역시 Optane Memory의 쓰기 제한입니다.
다만, 읽기 성능은 P4800X가 밀리는 것도 볼 수 있는데, 이상하게 905P와 P4800X 시리즈는 Polling의 효과가 크지 않더라고요. 제가 테스트해본 Optane 제품 중에서 유일하게 10µs를 달성하지 못한 이유와도 엮여있다고 생각합니다.
지금은 Intel 기반으로 테스트 시스템을 변경했는데, 테스트 가능한 P4800X가 없다는게 아쉬울 따름입니다.

완전한 읽쓰기를 제외하고 산출한 평균값입니다. Low QD에서의 뛰어난 성능을 잘 보여주네요.
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에는 약 4분이 소모되었으며, 287MB/s의 속도로 Steady State에 진입했습니다. 앞서 Fill Drive에서 살펴본 것처럼, FOB 상태에서 128k 쓰기를 가할 때, 특정 지점이 튀는 모습을 확인할 수 있습니다.
아니, 정확하게 말한다면, 특정 지점을 제외하고 성능이 저하된 모습이라 해야겠죠.
지연시간 그래프에서는 P4800X보다 약간 불안정한 모습을 보입니다. PM981a보단 낫다고 할 수 있겠지만요.
SEQ 128k Performance


SEQ 읽기는 QD2에서 1412MB/s@184µs로 포화되었고, SEQ 쓰기는 QD1에서 291MB/s@441µs, QD2에서 296MB/s@881µs로 최대치를 보였습니다.
RND Pre-Conditioning


RND Pre-Conditioning도 SEQ와 비슷하게 약 4분이 소모되었으며, 64.8k IOPS로 Steady State에 진입합니다.
RND 4k Performance


RND 읽기는 QD4에서 330k IOPS@11µs로 포화되었습니다. 참고로, P4800X도 QD4에서 327k IOPS@15µs의 성능을 보여, 그래프가 교차하는 점과 서로의 QD4는 가까운 포인트였습니다.
QD1의 성능은 168k IOPS@6µs의 성능을 보였는데, 이는 688MB/s라는 속도에 대응합니다.
RND 쓰기는 QD2에서 69k IOPS@25µs로 포화되는 모습이었습니다. 283MB/s에 대응하며, 역시 300MB/s를 넘기지 못합니다.
4-Corners Consistency
QD에 따른 4-Corners Performance의 안정적인 정도를 제시합니다. 상위 99.9%값과 평균을 이용하는데, SEQ 128k에서는 Bandwidth를 기준으로, RND 4k에서는 IOPS를 기준으로 계산합니다. 참고로, RND 4k에서 QD1에 대한 값은 이후 Tail Latency에서 자세히 살펴보기에 제외됩니다.

모든 지점에서 95% 이상의 Consistency를 보였습니다.
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를 통과하면 합격입니다.

Jobs가 151일 때, 약 41k IOPS가 측정되었습니다.
Read Intensive Workload (SEQ 128k R95:W05)

Read Intensive 워크로드에서는 QD2에서 최대 1144MB/s@186µs의 성능이 측정되었습니다.
Mainstream Workload (RND 4k R70:W30)

Mainstream 워크로드는 QD4에서 141k IOPS@24µs가, QD8은 지연시간이 2배로 늘어났지만, IOPS가 미미하게 증가하여 145k IOPS@51µs의 최대 성능을 보였습니다.
Write Intensive Workload (RND 4k R50:W50)

Write Intensive 워크로드는 QD4에서 105k IOPS@36µs의 성능이 측정되었습니다. 아무래도 쓰기 비율이 높아짐에 따라 P4800X에 밀리는 모습입니다.
AI Workload (RND 512B Read)

RND 512B 읽기에서는 RND 4k 읽기와 다르게 QD32까지 도달해야 1371k IOPS@22µs라는 최대 성능을 볼 수 있었습니다. RND 4k 읽기의 최대 성능이 330k IOPS라는 것을 생각하면, 꽤 놀라운 수치입니다.
P4800X와 다르게 4k에 비해 512B 워크로드에서 굉장한 성능을 보였는데, 개인적으로는 P4800X 쪽이 아쉽네요. Optane의 장점을 다 못 살렸으니 말이죠.
정확한 성능을 비교하자면, P4800X는 QD8에서 580k IOPS를 약간 넘기는 성능을 보였지만, Optane Memory는 QD4에서 778k IOPS의 성능을 보였습니다. 오타가 아니라 QD8의 P4800X가 QD4의 Optane Memory에게 밀린 것이 맞습니다.
Optane Memory의 지연시간은 QD1 3µs, QD2 4µs, QD4 5µs라는 아주 이쁜 결과가 나왔습니다. 50% 값이란 것에 유의해주세요.
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 [Burst] | 7 µs | 6 µs |
| Typical Value [Steady] | - µs | 6 µs |
| QoS (99.999%) | - ms | 72 µs |
| RND Write | Datasheet | Benchmark Result |
| Typical Value [Burst] | 18 µs | 19 µs |
| Typical Value [Steady] | - µs | 18 µs |
| QoS (99.999%) | - ms | 94 µs |
Optane SSD는 3D XPoint가 사용되어 Burst 성능과 Steady State의 성능이 동일합니다. 다만, 위의 표에서 Typical Value는 Burst와 Steady State에 다른 기준을 적용하였는데, 이는 Optane Memory 제품의 지연시간 스펙이 평균값에다가 SEQ 워크로드 기준이기 때문입니다.
Steady State에서는 평소대로 RND 50% 값을 기입했습니다. 그런데 별 차이 없죠?
QoS도 굉장히 우수한 편입니다. 물론, P4800X가 더 우수했지만, 비교가 가능하다는 시점에서 상당히 우수하다고 할 수 있죠.

99.999%를 기준으로 둔다면, 위 그래프의 3개 포인트를 제외하고는 모두 P4800X가 더 우수했습니다.
Closing
이제는 단종된 Optane이지만, 아직 여러 이유로 찾는 사람들은 존재합니다. Thrid Party SW를 이용해 드라이브의 원래 목적인 Caching으로 활용할 수도 있으며, 저용량의 OS를 담기 위한 Boot SSD, 용량대비 뛰어난 TBW를 활용한 Logging, ZFS에서는 저렴한 SLOG로도 활용할 수도 있습니다.
특별한 목적이 있다면, 하나 정도는 구해두시는 것도 나쁘지 않을 것 같습니다. 생산은 진작에 종료되었으니, 재고가 남아있을 때가 찬스라고도 할 수 있겠죠?
아슬하게 이번주 리뷰를 마무리했습니다. 당분간은 시험에 집중을 하기 위해 조금 템포를 늦춰볼게요.
이 친구는 홈네트워크의 라우터에 들어가, Logging 용도로 일하고 있는 중 입니다.




Comments