Linuxでのメモリ使用量の表示方法
Linuxは仮想メモリ(virtual memory)を使用しているため、プロセスが実際に使用している物理メモリを正確に計算するのは簡単ではありません。プロセスの仮想メモリサイズだけを知っていても、実際に割り当てられた物理メモリサイズは取得できません。
USS(Unique set size)は、プロセスが独自に消費するメモリサイズのみを計算し、共有する部分は含まれません。
Smemのインストールsmemは、/procファイルシステムから各プロセスのPSS/USS情報を抽出し、要約出力する複数のメモリ消費レポートを生成できるコマンドラインツールです。グラフの生成能力も内蔵されているので、システム全体のメモリ使用状況を簡単に分析できます。
Debian,UbuntuまたはLinux Mintにsmemをインストールする
コードのコピー
$ sudo apt-get install smemFedoraまたはCentOS/RHELにSmemを取り付ける
CentOS/RHELでは、まずEPELウェアハウスを有効にする必要があります。
コードのコピー
$ sudo yum install smem python-matplotlibsmemを使用してメモリの使用状況を確認する
非特権モードでsmemを使用すると、現在のユーザーが実行しているすべてのプロセスのメモリ使用状況を表示し、PSSのサイズに従ってソートできます。
コードのコピー$ smem
システム全体のすべてのユーザーのメモリ使用状況を取得するには、root権限を使用してsmemを実行する必要があります。
コードのコピー$ sudo smem
レポートをユーザー次元で出力することもできます。
<正则表达式>コードのコピー $ sudo smem -usmemは、マッピング、プロセス、およびユーザーの3つの次元でのフィルタリングをサポートする出力結果をフィルタするオプションを提供します。
smemグラフィックスによるメモリ使用状況の表示
グラフィックス化されたレポートは、より便利で迅速に使用できます。smemは、ヒストグラムとクッキーの2つのフォーマットのグラフィック表示をサポートします。
以下に、グラフィックス表示の例を示します。次のコマンドラインは、PSS/RSS値に基づいて、ユーザaliceを例にヒストグラムを生成します。
コードのコピー
$ sudo smem --bar name -c "pss uss" -U aliceこの例では、システム内の各プロセスのPSSメモリ使用量を示す円グラフが生成されます。
コードのコピー