pmem・とは?初心者が知るべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
pmem・とは?初心者が知るべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢: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 の特徴

比較対象RAMpmemSSD/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のおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
15195viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2464viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1102viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1083viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
971viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
927viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
888viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
870viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
819viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
817viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
746viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
730viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
635viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
629viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
618viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
567viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
555viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
527viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
526viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
492viws

新着記事

インターネット・コンピュータの関連記事