私はこれらの3つの単語が頻繁に現れるのを見ましたが、それらの正確な違いを理解していません。たとえば、CPU使用率の収集はプロファイリングと呼ばれることが多く、パフォーマンスの監視にも該当します。それらの間の(微妙な)違いは何ですか?
これが私がこれらの言葉を使う方法です。その他の使用法は、追加または異なる場合があります。手元の仕事に応じて、用語の使い方を変えます。開発チームと運用チームには、使用方法のニーズが異なります。
モニタリングはモニタリングです。通常は進行中で、できれば自動化されています。 Munin
、Nagios
、MRTG
などのオープンソースツールはこのカテゴリに分類されます。商用ツールもたくさんあります。このカテゴリにはsar
runも継続的に含めますが、その結果は通常監視されていません。監視ツールを使用して、監視対象のリソースがトリガーレベルを上回ったり下回ったりしたときにアラートをトリガーできます。多くの監視ツールは、異種環境でうまく機能します。
プロファイリングは通常、特定のプログラムで行われ、どのコードが最も多くのリソースを使用しているかを確認します。多くの場合、これはCPU時間ですが、メモリ、I/O、および実行(ウォール)時間も含まれます。通常、最適化の候補コードを識別するために使用されます。プロファイリングツールは、言語やプラットフォームに依存する傾向があります。
別の種類のプロファイリングは、ログや監視データを使用して行われます。これは使用状況プロファイリングであり、さまざまな理由で実行できます。これを行うためのツールはあまり見つかりませんでした。
トレースはいくつかの方法で使用します。最も頻繁に、私はネットワークルートをトレースします。ネットワークとファイアウォールの設定に応じて、さまざまなツールを使用して、多少の成功を収めることができます。これらのほとんどには、名前または説明にtracerouteがあります。
プログラムトレースは、プログラムの実行をトレースします。これは通常、テスト状況で行われます。これは、いくつかの方法で(私の使用法と経験の順序で)実行できます。
strace
などのツールを使用してトレースを呼び出し、どのコードが呼び出されているかを確認します。これは、プログラムが失敗した理由や期待どおりに応答しない理由を判別するのに役立ちます。