このページで
- #2 パフォーマンスチューニング
パフォーマンスを最大限に高めるようにZabbixシステムを適切にチューニングすることが非常に重要です。
- ハードウェア
ハードウェアに関する一般的なアドバイス:
- できるかぎり高速なプロセッサを使用する
- IDEとSATAよりSCSIまたはSASを選択する(ただしユーティリティhdparmを使用するとIDEディスクのパフォーマンスを大幅に高めることが可能)
- 157200RPMよりも10K RPM、10K RPMよりも15K RPMを選択する
- 高速RAIDストレージを使用する
- 高速イーサネットアダプタを使用する
- メモリはできるかぎり増やす
- オペレーティングシステム
- OSの最新バージョン(安定版)を使用する
- カーネルから不要な機能を削除する
- カーネルパラメータを調整する
- Zabbix設定パラメータ
最適なパフォーマンスを得るために、多くのパラメータを調整できます。
- zabbix_server
StartPollers
原則として、このパラメータの値はできるかぎり小さくします。zabbix_serverのインスタンスを1つ追加するたびに既知のオーバーヘッドが増加すると同時に、並列処理数が増加します。最適なインスタンス数になるのは、キューに存在するパラメータの平均数が最も少ない(理想は常に0)ときです。この値は、内部チェックzabbix[queue]を使用して監視できます。
DebugLevel
最適な値は3です。
DBSocket
これはMySQLのみ利用できます。データベース接続にDBSocketを使用することをお奨めします。これが最も速く、最も安全な方法です。
- データベースエンジン
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に配置することを推奨します
- 一般的なアドバイス
- 必要なパラメータだけを監視する
- 全てのアイテムの[更新間隔]を調整する。更新間隔を短く設定すれば詳細なグラフを作成できるが、Zabbixが過負荷になる可能性がある
- デフォルトテンプレートのパラメータを調整する
- housekeeperのパラメータを調整する
- 同じ情報を返すパラメータは監視しない
例: system[procload]、system[procload5]、およびsystem[procload15]は全てsystem[procload]に含まれているので監視する必要はありません。
- 関数の引数として長期間が指定されているトリガーを使用することを避ける。たとえば、max(3600)の計算にはmax(60)を大幅に上回る時間がかかる