このページで
-#10 パフォーマンスチューニング
これはまだ作業中
概要
最大のパフォーマンスを出すために、Zabbix システムを適切にチューニングすることは非常に重要です。
ハードウェア
ハードウェアに関する一般的なアドバイスを次に示します:
- できるかぎり高速なプロセッサを使用する
- IDEとSATAよりSCSIまたはSASを選択する(ただしユーティリティhdparmを使用するとIDEディスクのパフォーマンスを大幅に高めることが可能)
- 7200 RPMよりも10K RPM、10K RPMよりも15K RPMを選択する
- 高速RAIDストレージを使用する
- 高速イーサネットアダプタを使用する
- メモリはできるかぎり増やす
OS
- OSの最新バージョン(安定版)を使用する
- カーネルから不要な機能を削除する
- カーネルパラメータを調整する
Zabbix 設定パラメータ
最適なパフォーマンスを得るために、多くのパラメータを調整できます。
zabbix_server
StartPollers
原則として、このパラメータの値はできるかぎり小さくします。zabbix_serverのインスタンスを1つ追加するたびに既知のオーバーヘッドが増加すると同時に、並列処理数が増加します。最適なインスタンス数になるのは、キューに存在するパラメータの平均数が最も少ない(理想は常に0)ときです。この値は、内部チェックzabbix[queue]を使用して監視できます。
最適なZabbixプロセスの数の設定方法については、このページの一番下の「こちらも参照」セクションを参照してください。
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のパラメータを調整する
- 同じ情報を返すパラメータは監視しない
- 関数の引数として長期間が指定されているトリガーを使用することを避ける。たとえば、max(3600)の計算にはmax(60)を大幅に上回る時間がかかる
こちらも参照
本ページは2013/06/02時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は右上の「Translations of this
page」から英語版を参照してください。