2011-12-05 5 views
2

IBM SystemやHPのような単一のLinuxボックスでCPUとキャッシュの使用量をリアルタイムで収集/可視化するアプリケーション用のパフォーマンス監視ツールを探しています一般的な構成の8個のプロセッサー/ 80コアのProLiant アプリケーションはOpenMPを使用している自家製のマルチスレッドC +コードです。
この監視ツールは1日24時間実行しないでください。それは電子メール通知を行うべきではありません。
私のアプリにコマンドを送る直前にこのツールを実行すると、アプリはコマンドを実行します(最大数分かかる場合があります)。私は分析する必要があり、この時間間隔の間:80コアのシングルLinuxボックスでアプリケーション(CPUとキャッシュの使用量)を監視する

 
- usage of cores 
- data movement between processors 
- usage of L1, L2, L3 caches 
- some other metrics (help me here) which can help to find bottleneck in application 
performance and resource utilization 

私は、Nagios/Zabbixのようなツールは、このタスクのためにあまりにも重いことを推測します。
80コアのコマンドラインツールを「top」や「sar」のように使用すると、便利でプロットが難しい(リアルタイムでは必要ありません)のが良いでしょう。

+2

あなたが探しているのは、システム監視ではなくアプリケーションプロファイリングのドメインに該当します。私はそれがはるかに局所的であると思う。 – MikeyB

答えて

0

SiteScope、Hyperic orシェルスクリプト、ネイティブOSユーティリティ、および結果を格納するDBの任意の組み合わせが、その作業を行う可能性があります。

2

コアごとの使用率はかなり簡単ですが、他の値は実用的ではないかもしれません。少なくとも、ある種のプロファイラでそのアプリケーションを実行しているわけではありません。

可能であれば、QPI利用率の測定は非常に重要ではありません。インテルのvTuneは、バイナリのインスツルメント版を実行しているときに限り、そのようなものを取得することができます。

また、x86では、L1、L2、L3の使用状況を把握することはできません。低レベルのCPUカウンタを取得してキャッシュミスを測定することもできます(しかし、インストルメント/ vTuneやPAPIのようなもの)。

下位レベルのすべてのパフォーマンスカウンタをSNMPにプルするための設定を簡単に行うことができ、標準のSNMP対応の監視ツールを使用してSNMP値を取得できますが、SNMPプルーイングは、 1-2/s max。またはその情報をcollectdのようなものにプルします。

また、監視ツールの問題のドメインを理解していないという印象もあります。アプリケーションレベル/システムのボトルネックを見つけるための低レベルの解析プローブとして使用することはできません。10Kフィートのリソースが最大限に活用されているというヒントを得ることはできます。監視および変更ツールは、ITスタッフが現在使用しているITシステムのどの部分をどのように理解し、過去のデータを収集し、将来のリソース利用を予測し、何かが壊れたときに警告するために運用スタッフが使用する必要があるものです。

関連する問題