Linuxコマンド - メモリ関連

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

メモリ管理は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オプションを付加することにより、プロセスごとの詳細な情報を確認できる。