Linuxコマンド - メモリ関連
概要
メモリ管理はLinuxシステム管理において重要な要素の1つであり、Linuxのシステムのメモリ状態を包括的に把握することにより、問題が発生した際の迅速な対応が可能になる。
メモリ使用状況を確認する基本的なコマンドはfreeコマンドである。
このコマンドは、システム全体のメモリ使用状況、利用可能なメモリ量、スワップの使用状況等を一目で把握できる。
例えば、free -hコマンドを実行する場合、人間が読みやすい形式 (GB、MB単位) で表示される。
詳細なメモリ情報を確認する場合は、/proc/meminfoファイルの内容を参照する。
これは、cat /proc/meminfoコマンドで確認でき、システムのメモリに関する詳細な情報 (キャッシュの使用状況、バッファの状態、シェアードメモリの量等) を提供する。
プロセスごとのメモリ使用状況を監視する場合、topコマンドが有効である。
インタラクティブモードでは、メモリ使用量でソート、特定のプロセスを監視することができる。
現代的な代替としてhtopコマンドもあり、視覚的に使用しやすいインターフェースを提供する。
vmstatコマンドは、仮想メモリの統計情報を提供する。
このコマンドは、スワップの使用状況やページングの動作を監視する時に重宝する。
例えば、vmstat 1コマンド実行する場合、1秒ごとに統計情報が更新される。
また、メモリリークの調査やデバッグでは、valgrindツールを使用するとよい。
これは、メモリ監視コマンドではないが、プログラムのメモリ使用状況を詳細に分析して、メモリリークやその他のメモリ関連の問題を特定することができる。
システムのOOMキラー (Out Of Memory Killer) の動作を確認・調整する場合は、/proc/sys/vmディレクトリ内のファイルを参照する。
これらのファイル群では、メモリ管理に関する様々なカーネルパラメータを確認・調整することが可能である。
メモリの使用状況
top / htop
htopコマンドはtopコマンドの改良版であり、視覚的で使用しやすいインターフェースを提供する。
リアルタイムでシステムのメモリ使用状況を監視できる。
プロセスごとのメモリ使用量も確認可能である。
vmstat
仮想メモリの統計情報を表示する。
-s
オプションを付加することにより、詳細な統計情報を確認できる。
cat /proc/meminfo
システムのメモリ情報を詳細に表示する。
カーネルが管理しているメモリの様々な情報を確認できる。
ps aux --sort=-%mem
メモリ使用量の多い順にプロセスを表示する。
各プロセスのメモリ使用状況を確認できる。
smem
正確なメモリ使用状況を表示する。
共有メモリの重複カウントを避けることができる。
-tk
オプションを付加することにより、プロセスごとの詳細な情報を確認できる。