メモリ管理

仮想メモリ、ページング、スワップ

Linuxのメモリ管理は仮想メモリシステムを中心に構成されています。 各プロセスは独立した仮想アドレス空間を持ち、物理メモリへのマッピングはカーネルが管理します。

メモリ情報の確認

1# システム全体のメモリ
2free -h
3
4# 詳細情報
5cat /proc/meminfo
6
7# プロセスごとのメモリ使用
8ps aux --sort=-%mem | head
9top # Shift+M でメモリ順ソート
10
11# 特定プロセスのメモリマップ
12cat /proc/PID/maps
13pmap PID

メモリの種類

RSS (Resident Set Size)

実際に物理メモリに存在するサイズ。共有ライブラリ含む。

VSZ (Virtual Size)

仮想アドレス空間の合計サイズ。実際の物理メモリ使用量ではない。

Buffers / Cached

ディスクI/O高速化のためのキャッシュ。必要に応じて解放される。

Shared

複数プロセスで共有されるメモリ(共有ライブラリ等)。

SRE/インフラ観点

監視すべきメトリクス

  • メモリ使用率: (total - available) / total
  • スワップ使用: スワップが頻繁に使われるとパフォーマンス低下
  • OOM発生: dmesg や /var/log/syslog で確認
  • Page Fault: vmstat の si/so 列

詳細トピック