web-dev-qa-db-ja.com

Linux / Unixでのパフォーマンスモニタリング

私はいくつかのWindowsサーバーと(DebianとUbuntu)LinuxとAIXサーバーを実行しています。

ボトルネックを簡単に特定し、サーバーでの一般的なアクティビティの概要を把握するために、これらのシステムのパフォーマンスを継続的に監視したいと思います。

Windowsでは、これにWindowsパフォーマンスモニター(perfmon)を使用しています。私はこれらのカウンターを設定しました:

ボトルネックの場合:

  • プロセッサー使用率:システム\プロセッサーキューの長さ
  • メモリ使用率:メモリ\ページ入力/秒
  • ディスク使用率:PhysicalDisk\Current Disk Queue Length\driveletter
  • ネットワークの問題:ネットワークインターフェイス\出力キューの長さ\ nic名

一般的な活動の場合:

  • プロセッサー使用率:プロセッサー\%プロセッサー時間_合計
  • メモリ使用率:Process\Working Set_Total(または特定のプロセスごと)
  • メモリ使用率:Memory\Available MBytes
  • ディスク使用率:PhysicalDisk\Bytes/sec_Total(またはプロセスごと)
  • ネットワーク使用率:ネットワークインターフェース\バイト合計/秒\ニック名

(これらのカウンターの選択に関する詳細情報: http://itcookbook.net/blog/windows-perfmon-top-ten-counters

これは本当にうまくいきます。これにより、1つの場所を調べて、最も一般的なボトルネックを特定できます。

だから私の質問は、Linuxサーバーで同等の(または非常に似た)ことをどのように行うことができるかということです。

私は、AIX用に開発された無料のパフォーマンス監視ツールであるnmon( http://www.ibm.com/developerworks/aix/library/au-analyze_aix/ )を少し調べましたが、 Linux。ただし、nmonで上記のカウンターを設定できるかどうかはわかりません。 LinuxとAIXがこれらのまったく同じ測定値の監視を許可していないためかもしれません。そうです、どれを選ぶべきですか、そしてその理由は何ですか?

Nmonがこれに使用するツールではない場合、何をお勧めしますか?

3
ervingsb

基本的なシステムメトリックを確認しても、パフォーマンスを適切に示すことはできません。パフォーマンスがどのように制約されているかを示すことができますが、アプリケーションのパフォーマンスを測定する場合は、実際のトランザクションを確認する必要があります。

とにかく、パフォーマンスを測定するためのツールに終わりはありません。私はnagiosを使用しています。トレンド/キャパシティ管理には少し欠けていますが、レポート、エスカレーション、障害の切り分け、およびカスタムスクリプトの追加(yourトランザクションを測定する場合に必要になります)において驚くほど柔軟です。確かに、MSWindowsとLinuxの両方についてリストしたすべてのメトリックをカバーするために利用できるプローブがあります。

2
symcbean

いくつかの良いオプションがあり、そのうちのいくつかはF/OSSです(サポート契約が利用可能なF/OSSもあれば、完全な商用もあります。

http://collectd.org/ を独自のスクリプト( this に基づく)で使用して、rrdファイルの結果データからきれいな画像を描画し、ときどきメールを送信します。ただし、これはあなたにとっては実用的ではないかもしれません(私は数台のマシンしか監視していません)。

大規模なインストールの場合は、おそらく Zabbix (別のオープンソースオプションですが、collectdよりも「エンタープライズグレード」と見なされます)のようなものが必要です。

より完全なリストは http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems にあります。

1
David Spillett

インストールと使用が簡単なmuninが好きです。 (apt-get install munin munin-node)

1
Jure1873

基本的な監視にはNagiosを使用し、パフォーマンスの監視にはGraphiteを使用しています。グラファイトは非常にスケーラブルなソリューションです。 Diamondプラグインと組み合わせると、あまり労力をかけずにほとんど何でも測定できます。

http://graphite.wikidot.com/
https://github.com/BrightcoveOS/Diamond
1
Jeroen

一般に、使用するすべてのサーバーを追跡するためにsysAdminとして実行する手順がいくつかあります。 top、free -m、vmstat、iostat、iotop、sar、netstatなどのシステムコマンド。問題を分析/デバッグしているときは、これらのLinuxユーティリティに近いものはありません。これらのコマンドは、サーバー内で何が起こっているかを明確に示します。

Nagios :すべての監視/アラートツールの上位にあります。非常にカスタマイズ可能ですが、初心者向けにセットアップするのは非常に困難です。いくつかのnagiosプラグインがありますが。

サーバー密度 :重要なLinuxメトリックを収集し、ユーザーが独自のプラグインを作成できるようにするクラウドベースの有料サービス。

New Relic、Zabbix、Muninは他の有名なサービスです。

同様の質問 以前に出くわしました。他の答えがあなたを助けるかどうか見ることができます。

0
Kevin