画像ツール一覧

ページング

Paging

PC・システムのきほん

ページングは、仮想アドレス空間と物理メモリを「ページ」という単位で対応付けて管理する方式です。ページを必要に応じてストレージから読み込む仕組みもありますが、ページングそのものがメモリ不足時の退避だけを意味するわけではありません。

🐾 猫で例えると?

床に置かれたノーマル猫じゃらしか海老天猫じゃらしのどちらで遊ぼうか真剣に考えているアメショと、後ろで待機する茶トラ
手元の遊び場に、今使うおもちゃを取り出すイメージ

おもちゃを選ぶアメショの周りに、小さな遊び場と大きな収納棚があると想像してみましょう。遊び場がRAM、棚がストレージです。おもちゃを同じ大きさの箱に分け、使う箱を遊び場へ対応付ける仕組みがページ単位の管理に似ています。棚との出し入れはその一部であり、順番に遊ぶこと自体がページングなのではありません。

🐾 PR

💻 IT現場における「ページング」とは?

OSはアプリが見る仮想アドレスと、実際のRAM上の場所を対応付けます。すべての領域を常にRAMへ置く必要はなく、ファイルから読み込んだり、退避領域を使ったりできます。ただし、RAMを超える大きさのアプリが必ず動く保証ではなく、メモリや保存先の上限・アクセスの仕方に左右されます。

必要なページをそのまま参照できないと、ページフォールトが発生します。Windowsでいうハードフォールトは保存先からの読込が必要ですが、ソフトフォールトはRAM内のページを対応付けるなどして解決できます。フォールトの件数だけで「ディスクへのスワップが多い」と判断しないことが大切です。

⚠️ ページングの仕組みと注意点

必要なページがRAMに収まりにくく、入れ替えに多くの時間を費やして処理が進まない状態をスラッシングと呼びます。猫が遊ぶより棚への往復ばかりしているイメージです。ストレージがSSDなら音はしないため、動作音ではなくメモリ・I/O・応答時間で判断します。

Linux環境でのページング監視

サーバーの動作が極端に重くなった場合、エンジニアはまずメモリとページングの状況を疑い、以下のようなコマンドで調査を行います。

# Linuxで継続的な変化を見る例。停止はCtrl+C
vmstat 1
# si / so はスワップイン・アウトの指標
# 最初の行は起動後平均となる項目があるため、後続行も確認する

si/soが続けて増えるときは、空きメモリ、ページフォールト、ストレージI/O、アプリの応答時間も照合します。値が大きいだけでスラッシングを断定せず、どのプロセスが何を使っているかを調べます。

🛠️ ページングを賢く使う(避ける)ためのポイント

システムを快適に保つため、ページングの特性を理解した上でエンジニアやユーザーが意識すべきポイントです。

アメショが使いたいおもちゃを手元へ置けるように、よく使うデータがRAMへ収まると処理は進めやすくなります。仮想メモリの仕組みと、メモリ不足による頻繁な入れ替えを区別して、必要な対策を選びましょう。