Linuxのすべてのユーザー空間プロセスの物理メモリの現在および最大使用量を測定する方法は?

Linuxのすべてのユーザー空間プロセスの物理メモリの現在および最大使用量を測定する方法は?

Linuxでは、すべてのユーザースペースプロセスの合計物理メモリ使用量のソースが見つかりません。

多くのサブアプリケーション(複数のプロセスとRDBMS)で構成される複雑なアプリケーションのメモリ使用量を測定したいと思います。アプリケーションの実行中に、現在Linuxオペレーティングシステムのインスタンスにあるすべてのプロセスのメモリ使用量の推移を記録したいと思います。私は物理メモリ消費に興味があり、それが不可能な場合は常駐メモリ消費(RSS上にあるかPSS-PrivateRSS + SharedRSS/プロセス数)。ホストシステムで実行されている他のアプリケーションやプロセスはありません(メモリ使用量は無視できます)。

他の同様の質問とは異なり、VMWareコンテナ内で実行されているLinuxゲストに関する追加情報(メモリ統計を取得するために使用できる)から答えを得ることができます。

申請手続きが多すぎ、寿命周期が短い場合もあるため、すべての申請手続きを列挙することはできません。

理想的にはピークを見逃すか見てサンプリングせずに直接ピークメモリ使用量を得たいと思います。

私の最初の推測は次のとおりです。/proc/メモリ情報そしてuseを使用しますMemTotal – MemFree = CurrentMemoryUsageが、Linuxカーネルもファイルキャッシュのためにメモリを必要とするかもしれません。この方法は、最大メモリ使用量の推定にも不正確です。

使用時間または/proc//smapsこれは、アプリケーションに独立したプロセスが多すぎ、実行時間が非常に短いため不可能です。

関連情報