メモリ使用量を詳細に確認する方法

メモリ使用量を詳細に確認する方法

topプロセスが使用するメモリ量を表示できるpsコマンド、、、および(およびその他)がありますが、 pmapこれは合計メモリのみを表示します。

free -gコマンド出力を使用してtotalusedおよび次を表示できます。sharedbufferscached

             total       used       free     shared    buffers     cached
Mem:           126         86         39          5          1         80
-/+ buffers/cache:          4        121
Swap:            3          0          3  

各プロセスのメモリ使用量を詳細に確認する方法はありますか?たとえば、次のようになります。

PID     USER           MEM    USD    SHRD     BUF    CAH  command
23      monitoring     23kb   12kb    10kb   23kb    5kb   du

上記の方法が不可能な場合、具体的なメモリ容量を確認する方法はありますか? (たとえば、キャッシュメモリを確認し、各プロセスがどのくらいのメモリを使用しているかを確認したいと思います。)

答え1

私はCentosを持っていませんが、マニュアルページは私がこの問題を調査するために使用しているLinux Mintに関連しているようです。これらの機能はIPC(プロセス間通信機能)です。

共有リソースは(ほぼ定義に従って)特定のプロセスに属しません。したがって、すべてを報告することは多くの場合、二重として計算されます。

以下を使用して、リストされている共有メモリーセグメントを確認し、ipcs詳細を入手できます。

ipcs | while read -r _ Id _; do
    [[ $Id =~ [0-9] ]] && ipcs -u -m -i $Id
done | more

これはcpid(作成者PID)とlpid(最後の訪問者PID)を保持しているようです。私が知る限り、私には2種類の共有メモリがあります。

(a)マイコントロールパネル(mate-panel)は、表示されているすべてのアプリケーション(mintUpdate、mate-sensors-ap、mate-screensave)と共有されます。

(b)マイディスプレイサーバー(Xorg)は、編集メニューを使用できるすべてのウィンドウ(xed、端末)と共有されます。

デバイスキャッシュも非プロセスです。ファイルを使用するプロセスが終了してから古くなっても、以前に使用されたファイルに関連付けられています。このスペースは必要に応じてすぐに削除できますが、最近使用したファイルの一部のブロックを再利用できることを望んでいます。

仮想メモリは、実際には使用されていない予約によって過度に使用されることが多いため、寿命が短くなる可能性があります。

関連情報