

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
pmem・とは何か
pmem は Persistent Memory の略で、電源を切ってもデータを保持できる可能性を持つ新しいタイプの記憶領域です。従来の RAM は高速ですが電源を落とすとデータが失われます。SSD/HDD は長期保存ができる一方で速度が遅いです。pmem はこの両方の良い点を組み合わせ、容量が大きくて「速さと耐久性のバランス」が取れるよう設計されています。
pmem の種類と使い方
現実には「完全なRAMの代わりになるわけではなく、使い方によって挙動が変わります。主に以下の2つのモードがあります。
1) アプリ直アクセスモード(App Direct) では プログラムが直接 pmem にアクセスしデータを非揮発性として扱います。ファイルシステムは DAX 付きのファイルシステム( XFS/ext4 + DAX など)を使います。これにより高速にデータを読み書きしつつ、電源を落としてもデータを失いにくくなります。
2) メモリモード では DRAM を拡張する形で PMEM を使います。OS が PMEM を大きな仮想メモリとして扱うので、アプリはあたかも大容量のRAMを使っているように見えます。ここではデータの永続性はアプリ直アクセスほど強くは保証されません。
実装を始めるには、ハードウェア(PMEM を搭載したサーバーや PC)とOSのサポートが必要です。多くの Linux ディストリビューションは PMEM をサポートしており、カーネル 4.x 以降や最新のバージョンであれば native support が整っています。用途に応じて PMDK(Persistent Memory Development Kit)というライブラリ群を使うと、プログラムから pmem を安全に扱えるようになります。“libpmem” はデータの非揮発性処理を手助けする基本的なライブラリで、“libpmemobj” は複雑なデータ構造を安全に永続化するためのツールです。これらを使うと、C/C++ だけでなく他の言語からも PMEM を活用できます。
身近な例と使い方のイメージ
日常的な例として、データベースのキャッシュを PMEM に置くとデータの再起動後の復元が早くなります。ウェブアプリのセッション情報を PMEM に置けば、サーバー再起動後もログイン状態が維持されやすくなります。ゲームのセーブデータや大きな設定データを PMEM に配置することで、起動時間を短くする効果も期待できます。
比較表:RAM / PMEM / SSD の特徴
| 比較対象 | RAM | pmem | SSD/HDD |
|---|---|---|---|
| 主な用途 | 高速な一時的処理 | 容量と速さのバランスを提供 | 長期保存・大容量データ |
| 遅延の目安 | 非常に低い | RAMより高いが SSD よりは速いことが多い | |
| 永続性 | なし | 設定次第で永続性を活かせる | 基本的に永存性あり |
| コスト/容量 | 高価だが超高速 | 大容量を安価に提供する場合がある | 安価で大容量 |
まとめとして、pmem は「速さとデータの保持」を両立させる新しい選択肢です。初心者がはじめるには、まずは OS と PMEM のサポート状況を確認し、小さなデータで試してみるのがおすすめです。PMDK の入門記事を参考にしつつ、簡単なライブラリ呼び出しから始めると、データの保存方法やパフォーマンスの違いを体感できます。
注意点と学習リソース
pmem を扱う際はデータの耐久性を保証できるモードを選ぶことが重要です。誤って RAM のように扱うと電源を失った際にデータが失われることがあります。実機で試す際には必ずバックアップを取り、テスト環境で試すことをおすすめします。公式ドキュメントや PMDK のチュートリアル、オンラインの動画講座などを活用しましょう。
実務での導入のヒント
小規模なサービスなら PMEM を使ったキャッシュ層から始め、徐々にデータを永続化する領域へ広げていくのが安全です。パフォーマンス測定を行い、 データの整合性 と 回復時間 のバランスを考えましょう。
覚えておきたい用語
- DAX Direct Access の略。PMEM に対してファイルシステムを介さず直接データへアクセスする技術です。
- PMDK Persistent Memory Development Kit。PMEM をプログラムから安全に利用するためのライブラリ群です。
- その他の用語や実装例は公式ドキュメントで確認してください。
pmemの同意語
- 永続メモリ
- Persistent memoryの日本語表現。電源を切ってもデータを保持する不揮発性のメモリ領域。通常のRAMとストレージの中間的な特性を持ち、pmemの中心概念として使われます。
- パーシステントメモリ
- Persistent memoryのカタカナ表記。英語の概念をそのまま指す用語。
- 不揮発性メモリ
- 揮発性がなく、電源を切ってもデータを保持するメモリ全般の総称。pmemの核となる属性。
- 不揮発性RAM
- RAMのうち不揮発性を持つタイプの総称。NVRAMやNVDIMMなどを含みます。
- NVRAM
- Non-Volatile RAMの略。電源を切ってもデータが保持されるRAMの総称。
- NVDIMM
- Non-Volatile DIMMの略。不揮発性RAMをDIMM型で搭載したメモリ。
- NVDIMM-N
- NVDIMMの型式の一つ。DRAMと不揮発性メモリを組み合わせた構成。
- NVDIMM-F
- NVDIMMの型式の一つ。フラッシュメモリだけを用いた不揮発性DIMM。
- 永続性メモリ
- pmemの日本語表現の別案。データを長期に保持する性質を強調する表現。
- 不揮発性DIMM
- DIMM形式の不揮発性RAM全般を指す表現。NVDIMMを含む総称として使われます。
pmemの対義語・反対語
- 揮発性メモリ(RAM)
- pmemの最も一般的な対義語。電源を切るとデータが失われる性質のメモリで、長期保存を前提とするpmemとは対照的です。
- 短期記憶(比喩表現)
- 人間の記憶のイメージを借りた比喩表現。長期的な保持をしない一時的な記憶というニュアンスで使われます。技術的には揮発性メモリを指すことが多いですが、分かりやすさ重視の表現です。
- 一時的メモリ
- データを長く保持せず、短期間だけ保持するタイプの記憶の表現。pmemの反対語として日常語寄りに使われます。
- 非永続的メモリ
- データが長期的に保存されない性質を表す別表現。技術的には揮発性メモリとほぼ同義として使われることがあります。
pmemの共起語
- 永続メモリ
- 電源を落としてもデータを保持する非揮発性のメモリ。DRAMのように高速にアクセスできますが、電源断時にも情報を失いません。pmemはこの技術の代表例です。
- 非揮発性メモリ
- 電源を切ってもデータを保持できる記憶装置の総称。pmemはこのカテゴリに含まれます。
- NVRAM
- Non-Volatile RAMの略。揮発性がなく、永続的にデータを保持するRAMの総称です。pmemもNVRAMの一種として扱われます。
- NVDIMM
- Non-Volatile DIMMの略。メモリモジュールとして搭載され、電源断時にもデータを保持します。
- NVDIMM-N
- NVDIMMの一種で、DRAMとNVRAMを組み合わせて高性能と永続性を両立するタイプ。電源喪失時にはNVRAMにデータを保存します。
- Optane
- Intelが提供するPMEM製品群のブランド名。Persistent memoryの代表例として広く知られています。
- Optane DC Persistent Memory
- Intel Optane DC Persistent Memoryの正式名称。大容量の永続メモリで、データの長期保持と高い性能を両立します。
- PMDK
- Persistent Memory Development Kitの略。pmemを用いたアプリを開発するためのライブラリ群の総称です。
- libpmem
- PMDKの低レベルライブラリ。永続メモリ上のデータを安全に読み書きする機能を提供します。
- libpmemobj
- PMDKのオブジェクトストアライブラリ。永続メモリ上にオブジェクト指向のデータ構造を配置します。
- libpmemobj++
- libpmemobjのC++バインディング。C++で永続メモリを扱いやすくするためのライブラリです。
- pmem2
- PMDKの低レベルAPI。永続メモリへ安全に直接アクセスするための機能を提供します。
- pmemfile
- PMDKのファイルAPI。永続メモリ上にファイルシステム風のAPIを提供します。
- pmemkv
- キー-バリュー型のストレージライブラリ。永続メモリ上で高速にデータを格納・検索できます。
- ndctl
- Linux上でPMEMデバイスを管理するツール。namespaceの作成・管理を行います。
- App Direct
- アプリケーションが永続メモリを直接利用するためのモード。DRAMとPMEMを同時に活用できます。
- Direct Access(DAX)
- PMEMをファイルシステム経由なしに直接メモリとしてアクセスする仕組み。高速化の要因です。
- DAX
- Direct Accessの略。PMEMを直接アクセスする手法の総称です。
- fsdax
- ファイルシステムDAXモード。PMEM上にファイルシステムを構築する際のモードの一つです。
- devdax
- デバイスDAXモード。PMEMをデバイスとして直接提供します。
- ネームスペース
- PMEMデバイスの管理単位。ブロックデバイスとしてやファイルシステムとして利用されます。
pmemの関連用語
- pmem
- Persistent memory(永続メモリ)とは、電源を切ってもデータを保持する非揮発性のメモリです。RAMのような低遅延・高いスループットを活かしつつ、データを保持できる点が特徴です。
- NVRAM
- Non-volatile RAMの略。電源を切ってもデータを保持するRAMの総称で、pmemを含む技術の総称として使われます。
- NVDIMM
- Non-Volatile DIMM。メモリモジュールとして、DRAMの高速性と非揮発性の耐久性を組み合わせたデバイス。サーバーやストレージ用途で使われます。
- PMDK
- Persistent Memory Development Kitの略。pmemを活用したアプリを開発するためのライブラリ群の総称です。
- libpmem
- PMDKの低レベルライブラリ。PMEM上のデータを安全に配置・永続化するための基本 API を提供します。
- libpmemobj
- オブジェクト指向の永続メモリ API。トランザクションのサポートを使って、複数オブジェクトの整合性を保ちながら永続化できます。
- libpmemlog
- PMEM上のログを扱うライブラリ。低遅延の追跡的記録を行い、クラッシュ後の回復に役立ちます。
- libpmemkv
- PMEM上にキーと値のペアを格納する高水準ライブラリ。高速な検索・挿入を実現します。
- pmemset
- PMEMのマッピングやリソース管理を支援するライブラリ。複数のPMEMデバイスを柔軟に活用できます。
- pmempool
- プール単位のデータ領域を作成・管理する機能。プールはPMEM上のデータ構造の土台となります。
- pmemfile
- PMEM上でPOSIX風のファイルIOを行えるユーザースペースの層。従来のファイルAPIをPMEMで利用可能にします。
- PMEM2
- PMDKの一部で、PMEMのマッピングとアクセスを安定・高速化する低レベル API。
- DAX
- Direct Accessの略。ファイルを介さずPMEMへ直接アクセスする方式。ページキャッシュを介さず、低遅延を引き出します。
- App Direct
- アプリケーションがPMEMを直接使うモード。主にデータの永続性を活かす使い方です。
- Memory mode
- Memoryモード。PMEMを仮想的な主メモリとして振る舞わせ、RAMを補完する運用です。
- Intel Optane DC Persistent Memory
- IntelのPersistent Memory製品群のブランド名。大容量・高耐久のPMEMを提供します。
- NVDIMM-N
- 電源断後もDRAMの内容をNVRAM領域に保存するタイプのNVDIMM。
- NVDIMM-P
- PMEMを直接使うタイプのNVDIMM。容量と耐久性のバランスを取る設計です。
- FSDAX
- ファイルシステムレベルでDAXをサポートするモード。Ext4やXFSなどでPMEMへ直接アクセスします。
- トランザクション
- PMDKが提供する、複数操作を原子性・一貫性・耐久性を保って実行する機能。データ整合性を確保します。
- クラッシュリカバリ
- 電源障害後にデータの整合性を回復させる仕組み。PMEMはクラッシュリカバリの設計が重要です。
pmemのおすすめ参考サイト
- 永続メモリとは? |ピュア・ストレージ - Pure Storage
- 永続的メモリ(PMEM)とは| メリット | 事例 | ネットアップ - NetApp
- 永続性メモリ(PMEM)とは?特徴・用途・導入メリットを詳しく解説!
- 永続性メモリ(PMEM)とは?特徴・用途・導入メリットを詳しく解説!
- 永続的メモリ(PMEM)とは| メリット | 事例 | ネットアップ - NetApp



















