FreeBSDのRAM使用量が多く見える理由

原題: FreeBSD ate my RAM

なぜ重要か

OSのメモリ管理の実態を正確に理解することは、サーバー運用やパフォーマンスチューニングの判断精度向上に直結する重要な技術知識である。

エンジニアのBruno Crociは2026年7月2日、FreeBSDのRAM使用量表示が実際より多く見える仕組みを調査・解説する記事を公開した。OSがディスクデータをRAMにキャッシュするため使用量が膨らんで見えるが、必要時には解放される揮発性キャッシュであることを、FreeBSDの仮想メモリ管理の仕組みとともに詳しく説明している。

Bruno Crociは先月、UbuntuサーバーからFreeBSDへの移行を記事にした際、fastfetchとbtopでRAM使用量の表示が異なることに気づいた。これをきっかけに数週間かけてFreeBSDのメモリ管理の仕組みを調査し、その結果を本記事にまとめた。

FreeBSDを含む現代のOSはVirtual Memory(VM)システムを採用しており、物理メモリを通常4KiB単位のページに分割して管理する。FreeBSDのページキューは、`PQ_INACTIVE`(未使用ページ)、`PQ_ACTIVE`(使用中ページ)、`PQ_LAUNDRY`(スワップ書き込み待ちページ)、`PQ_UNSWAPPABLE`(スワップ不可ページ)、`PQ_NONE`の4種類で構成され、ソースコード`sys/vm/vm_page.h`に定義されている。

`top`コマンドでは、active・inactive・laundry・wired・freeという区分でメモリ状態が表示される。ディスクから読み込んだデータはRAM上にキャッシュされるため、使用量が高く見える。しかしこのキャッシュは揮発性であり、新たなメモリ要求が発生した際には解放される。

スワップの仕組みについても解説されており、アクセス頻度が低いinactiveページはlaundryキューを経由してスワップ領域(ディスク)へ書き出され、再度必要になった時点でRAMに戻される流れが説明されている。同様の挙動はLinux・OpenBSD・NetBSD・DragonFlyBSDにも存在し、Linuxについては「Linux ate my RAM」という既存の解説サイトが共有されたことも記事内で触れられている。

出典

crocidb.com — 元記事を読む →