zabbix_server.serviceのvmware.collectorの1プロセスに負荷が集中する
VM LLD監視をしていますが、vmware.collectorの1プロセスに負荷が集中します。
それが原因となり、systemctlでrestart/stopを実行時に、負荷のかかっているvmware.collectorが
正常終了せずプロセスに残存してしまいます。
※残存プロセスをkillしないと、zabbix_server.serviceが起動しなくなる
StartVMwareCollectors=20などで設定しても、コア別の使用率では1コアだけが100%を専有、
あとの15プロセスほどは使用率0%で動いていません。
※負荷分散が仕様上、1コアに集中してしまう? その場合の回避方法はvCenterサーバで管理する台数を分ける必要などがある?
もし本当に仕様ならば、同様の現象にあっているひとがいそうですが。。。
また、おそらくは高負荷が原因となり、頻繁にアイテムの取得が「became not supported」になります。
ログに「became not supported」「became supported」が溢れて難儀しています。
しかも、時折zabbix_server.serviceがダウンします。
ダウンすると、vmware.collectorが残存し、本体のプロセスが正常に起動してこなくなるコンボで困っています。
■質問内容
「vmware.collector 1プロセスに負荷が集中する回避方法はあるか」
■環境
Zabbix Version:3.4.9
DB:PostgreSQL
ハード:CPU4コア、Memory16GB(使用率used50%程度)
監視台数:vCenterサーバ2台、Hypervisor20台、ゲストOS600台程度、その他Agent監視台数が複数
必要な情報がありましたら提示しますので、何卒よろしくお願いします。
yk_taiko - 投稿数: 184
1台のVMwareService(vCenterやvSphere) に対しては、2 つのプロセス(構成データ取得用とパフォーマンスデータ取得用) でのみ取得を行います。
(複数のプロセスで分散して取得しない・・・vCenter2台から取得しているのであれば、VMwareCollectorsを4より大きくしても意味がない)
各プロセスがconfの「VMwareFrequency」や「VMwarePerfFrequency」の単位でデータを一括収集してキャッシュしておき、
各アイテムは一括収取したデータから一部を取りだして保存しています。
https://www.zabbix.com/documentation/3.4/manual/vm_monitoring
一箇所の vCenter からデータを集中して取っているようであれば、分散したほうが良いかもしれません。
2.2 にはなりますが、日本語マニュアルに以下のように書かれています。
「大規模システムのvCenterサービス全体を監視する代わりに、ESXハイパーバイザーを直接監視することを推奨します。」
https://www.zabbix.com/documentation/2.2/jp/manual/vm_monitoring
Yasumi - 投稿数: 372
>yk_taikoさん
ありがとうございます。VMwareCollectorsの挙動について理解しました。
vCenterの状態を見て、こちらに問題がないかも確認してみます。
※1台のvCenterに300台以上のゲストOSがぶら下がるのが一般的なのか知識が浅く、知見もないのでこちらも調べます。
DBへの書込がボトルネックになっているかもしれないのでこちらも確認してみます。
ただ、もしVMwareCollectorsの負荷がアイテム取得のボトルネックになっているのなら
Zabbixが改修されるしかないので困りましたね。。。4.0でなんとかなるのか。。。
同じ事象で悩んでいるひとがいないのかも気になります。
VMwareCollectorsの負荷がボトルネックになっていそうな事例は下記が該当しそうです。
http://www.zabbix.jp/node/2928
そこまで粒度を要求されるシステムではないので、対症療法として
「VMwareFrequency」「VMwarePerfFrequency」を60秒⇒300秒間隔にして様子を見てみます。
「ESXハイパーバイザーを直接監視する」ですが、各ゲストOSがvCenterの管理下を外れるので
クラスター情報を取得できなくなり、vMotionに対応できなくなりますね。※確認済み
これはあまり手法として推奨できない。。。
Yasumi - 投稿数: 372
付記です。
VMwareCollectorsが高負荷になることでプロセス動作に問題が発生する事象は、
「VMwareFrequency」「VMwarePerfFrequency」を300秒にすることで負荷を軽減でき、抑制できました。
プロセスがダウンしたりはなくなったように思います。
また、頻繁にアイテムの取得が「became not supported」になることは継続しました。
どうもゲストOSのアイテムの中でも計算を利用しているものや、ディスカバリで設定が入っているものが
一時的に取得不可になることが多いようです。なぜそうなるか原因は不明ですが調査しています。