メモリ管理
仮想メモリ、ページング、スワップ
Linuxのメモリ管理は仮想メモリシステムを中心に構成されています。 各プロセスは独立した仮想アドレス空間を持ち、物理メモリへのマッピングはカーネルが管理します。
メモリ情報の確認
1 # システム全体のメモリ 2 free -h 3 4 # 詳細情報 5 cat /proc/meminfo 6 7 # プロセスごとのメモリ使用 8 ps aux --sort=-%mem | head 9 top # Shift+M でメモリ順ソート 10 11 # 特定プロセスのメモリマップ 12 cat /proc/PID/maps 13 pmap 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 列