Centos 6.3でCactiを使用してメモリ消費量が最も高い10のプロセスリストを取得する

Centos 6.3でCactiを使用してメモリ消費量が最も高い10のプロセスリストを取得する

私はCentos 6.3でCactiを使用していますが、サーバーがダウンしたときにその背後にあるプロセスを見つけやすくするために、メモリグラフを使用してメモリを大量に使用する上位10のプロセスのリストを取得したいと思います。

プラグインやテンプレートを使用できますか?

ベストアンサー1

まず、これらのデータはビジネスで使用するのが難しいです。RRDデータベース。 10個のPID /プロセスが変更されますが、RRDデータソースは静的であるためです。 1〜10までしか録音できませんが、これ以上情報を取得できません。名前/PIDをデータソースにマッピングすることでこの問題を解決できますが、必要な名前をすべて事前に準備する必要があるため、簡単ではありません。あるいは、PIDごとに65536のデータソースを作成できますが、グラフを作成するのは少し面倒です。

次のようにもっと拡張可能なものを試してみる時が来たようです。TSDBを開く

第二に、Linuxで実際のメモリ使用量を監視することは容易ではありません。ps嘘だLinuxは共有メモリを使用し、プロセス固有のレベルの情報を照会するための単純なインターフェースを提供しません。マシンのメモリパフォーマンスに影響を与えるカーネルメモリとキャッシュもあります。

メモリの問題を強調するのに役立つように追跡できる3つの項目があります。

  • 実行ファイルごとの共有とプライベートメモリ
  • プロセスごとのプライベートメモリ
  • カーネルメモリ

実行ファイルごとの共有とプライベートメモリ

これps_mem.pyスクリプト、これは私が見つけた最高の「既成」推定です。

ノート「これらの価値は以下に基づいています。プログラム、プロセス固有ではない"これは、共有メモリの動作方法とカーネルで実行される計算の副産物です。

プロセスごとのプライベートメモリ

各ファイルのすべての値の合計を計算して、/proc/[0-9]*/smaps 各プロセスの専用メモリを取得できます。プロセス名はまたはから取得できます。Private_DirtyPrivate_Clean/proc/[0-9]*/status/proc/[0-9]*/stat

メモリ情報

合計メモリ使用量の値は次のものから得られます。/proc/meminfo

MemTotal
MemFree
Buffers
Cached
SwapTotal
SwapFree
AnonPages
Mapped
Dirty
Writeback
Shmem
Slab
KernelStack
PageTables
NFS_Unstable
Bounce
WritebackTmp

/proc/meminfoこれらすべてのデータポイントのみを使用するよりも優れたグラフを作成できるこれらの値から、多くの情報を推論できます。

これら3つの分野では、ほとんどの記憶問題の原因について良いアイデアを得ることができるはずです。

結局、私はLinuxアカウントが割り当てたメモリにまだ「穴」があることを発見しました。穴は仮想→物理メモリマッピングのようです。マシンにメモリが多いほど、穴は大きくなります。

おすすめ記事