メモリ容量を最大8倍に拡張してくれるNVMe SSD。Western Digital「Ultrastar Memory Extension Drive」発表
LinuxやWindowsなどのモダンなOSには一般に「仮想記憶」と呼ばれる機能が備わっています。仮想記憶には、物理メモリに保持されている内容を一時的にストレージへ待避させ、そこへ別の内容を書き込める仕組みがあります。この仕組みにより、OSは物理メモリの容量を超えてメモリを割り当てることができるようになります。
Western Digitalは11月12日、この仮想記憶のような仕組みを用いてメモリ容量を最大8倍にまで拡大できる「Ultrastar DC ME200 Memory Extension Drive」(以下、Memory Drive)を発表しました。
Memory Driveの物理的な構成は、NVMeインターフェイスを備えた高速なSSDです。
このNVMe SSDと独自のソフトウェアを組み合わせることで、Linuxアプリケーションに対して透過的に振る舞いつつ、あたかも搭載した物理メモリ以上の大容量メモリを備えているかのように動作し、RedisやMemcachedなどインメモリ処理を行うアプリケーションなどのデータ容量が向上するとしています。
機械学習など高度なアルゴリズムで先読み
Memory Driveのソフトウェアは機械学習など高度なアルゴリズムによって、事前に必要だと予想される内容をMemory Driveから読み出してDRAM上に配置。それが仮想的な大容量メモリを実現しているとのことです。
「In-Memory Computing at Scale? Look Beyond Physical DRAM」から引用します。
Near-DRAM performance is achieved through the use of 20+ types of algorithms to predict, prefetch, and optimize memory and locality, as opposed to the typical single algorithm that is typically implemented in hardware (e.g., adjacent cacheline prefetch).
DRAMに近い性能を獲得する手法として、予測、プリフェッチ、メモリ最適化、ローカリティなど20種類以上のアルゴリズムを用いており、これは従来ハードウェアなどで典型的に実装されてきた単一アルゴリズムと異なるものだ。
It uses machine learning, pattern recognition, code scanning, and other techniques, which allows the Ultrastar DC ME200 to massively prefetch addresses that the CPU will be using thousands of cycles ahead, so by the time the CPU needs those addresses, they already are waiting in DRAM.
このアルゴリズムは機械学習やパターン認識、コードスキャニングそのほかのテクニックを採用しており、CPUが数千サイクル先に使うであろうアドレスをUltrastar DC 2000が大量にプリフェッチできるようにしている。そのおかげでCPUがその内容を必要になったときには、すでにそのアドレスはDRAM上でアクセスされるのを待っているのだ。
Memory Driveを用いることで、最大8倍のメモリ増設効果があるとしています。
下記がWestern Digitalが示しているMemcachedを用いたベンチマークの結果です。いちばん左の紫のマーカーが768GBの物理メモリを搭載しているサーバの性能として1080tpsを示しており、真ん中の青いマーカーは192GBの物理メモリに対してMemory Driveを用いて768GBメモリ相当にしたサーバの性能として983tpsを示しています。
いちばん右の黄色のマーカーは96GBの物理メモリに対してMemory Driveを用いて768GBメモリ相当にしたサーバの性能として918tpsを示しています。
SSDの遅さをソフトウェアの高度化で解決するアプローチ
Memory Driveの最大のメリットは、安価なNVMe SSDを用いることで、あたかも高価なDRAMを何百ギガバイトも購入するのに近い性能を得ることができるコストパフォーマンスの高さにあります。
これまでもSSDを用いてメインメモリを擬似的に拡張する試みはありましたが、一般にSSDに用いられているNAND型フラッシュメモリはDRAMと比べて桁違いに遅いため、DRAMを置き換えられるほど十分な性能を引き出すのは難しいと考えられてきました。あるいは特別な変更をアプリケーションに加える必要がありました。
だからこそ、インテルが2019年に本格出荷しようとしている「Intel Optane DC persistent memory」は、DRAMよりも遅いながらもNAND型フラッシュメモリよりも高速な3D XPointを用いているわけです。そしてそれゆえに有望だと考えられています。
今回のWestern Digitalが発表したMemory Driveは、そのSSDの遅さをソフトウェアによるプリフェッチを高度化させることで解決しようとしている点が、これまでにない点といえそうです。
あわせて読みたい
分散ストレージのCephを推進する「Ceph Foundation」が発足
≪前の記事
「HTTP/3」がHTTP-over-QUICの新名称に。IETFのQUICワーキンググループとHTTPワーキンググループで合意