Zabbix Documentation 1.8

3.04.04.24.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.4Guidelines

User Tools

Site Tools


Sidebar

jp:manual:performance_tuning

18 パフォーマンスチューニング

18.1 実際の設定

サーバー(RedHat Linux 8.0, kernel 2.4.18-14, MySQL/MyISAM 3.23.54a-4, Pentium IV 1.5Ghz, 256Mb, IDE)にインストールされたZABBIXは、1秒間に200以上のパラメータを収集することができます(ネットワークの遅延はないと仮定)。

このハードウェア上で動作するZABBIXで監視できるサーバの数は、監視するパラメータの数とZabbixがパラメータを収集する頻度によって決まります。監視するサーバ1台あたり10個のパラメータを収集するものとします。更新間隔は30秒です。この場合、単純に計算すると、Zabbixが処理可能なサーバの数は600台(または6000個のチェック)になります。パラメータの更新間隔が1分の場合は、同じハードウェア設定で1200台(=600台×2)のサーバを処理できます。これらの計算結果は、監視する値を全て、必要なときに遅延なしで取得できることを前提としています。この前提が不要な場合は、監視できるサーバの台数を5~10倍に増やすことができます。

2010/08/08 07:45

18.2 パフォーマンスチューニング

パフォーマンスを最大限に高めるようにZabbixシステムを適切にチューニングすることが非常に重要です。

18.2.1 ハードウェア

ハードウェアに関する一般的なアドバイス:

  • できるかぎり高速なプロセッサを使用する
  • IDEとSATAよりSCSIまたはSASを選択する(ただしユーティリティhdparmを使用するとIDEディスクのパフォーマンスを大幅に高めることが可能)
  • 157200RPMよりも10K RPM、10K RPMよりも15K RPMを選択する
  • 高速RAIDストレージを使用する
  • 高速イーサネットアダプタを使用する
  • メモリはできるかぎり増やす

18.2.2 オペレーティングシステム

  • OSの最新バージョン(安定版)を使用する
  • カーネルから不要な機能を削除する
  • カーネルパラメータを調整する

18.2.3 Zabbix設定パラメータ

最適なパフォーマンスを得るために、多くのパラメータを調整できます。

18.2.3.1 zabbix_server

StartPollers

原則として、このパラメータの値はできるかぎり小さくします。zabbix_serverのインスタンスを1つ追加するたびに既知のオーバーヘッドが増加すると同時に、並列処理数が増加します。最適なインスタンス数になるのは、キューに存在するパラメータの平均数が最も少ない(理想は常に0)ときです。この値は、内部チェックzabbix[queue]を使用して監視できます。

DebugLevel

最適な値は3です。

DBSocket

これはMySQLのみ利用できます。データベース接続にDBSocketを使用することをお奨めします。これが最も速く、最も安全な方法です。

18.2.4 データベースエンジン

Zabbixのチューニングで最も重要なのはデータベースエンジンでしょう。Zabbixは、データベースエンジンの可用性とパフォーマンスに大きく依存しています。

  • 最も高速なデータベースエンジン(すなわちMySQL)を使用する
  • データベースエンジンの安定版リリースを使用する
  • 最高のパフォーマンスを得るためにソースからMySQLまたはPostgreSQLをリビルドする
  • MySQLまたはPostgreSQLのドキュメントに記載されているパフォーマンスチューニング手順を実行する
  • MySQLの場合、InnoDBテーブル構造を使用する
  • MyISAMを使用した場合と比較して、InnoDBを使用した場合Zabbixは少なくとも1.5倍は動作が高速化します。これは並行処理性が高くなるためです。しかしながら、InnoDBは大量のCPUパワーを必要とします。
  • 別個のハードディスクにデータベーステーブルを保持する
  • 「history」、「history_str」、「items」、「functions」、「triggers」、「trends」が最も頻繁に使用されるテーブルになる
  • 大規模システムではMySQLの一時ファイルをtmpfsに配置することを推奨します

18.2.5 一般的なアドバイス

  • 必要なパラメータだけを監視する
  • 全てのアイテムの[更新間隔]を調整する。更新間隔を短く設定すれば詳細なグラフを作成できるが、Zabbixが過負荷になる可能性がある
  • デフォルトテンプレートのパラメータを調整する
  • housekeeperのパラメータを調整する
  • 同じ情報を返すパラメータは監視しない

例: system[procload]、system[procload5]、およびsystem[procload15]は全てsystem[procload]に含まれているので監視する必要はありません。

  • 関数の引数として長期間が指定されているトリガーを使用することを避ける。たとえば、max(3600)の計算にはmax(60)を大幅に上回る時間がかかる
2010/08/08 07:46