Zabbix7.0のキャッシュには以下があります。
- Configurationキャッシュ
zabbix_server.confのCacheSize - Historyキャッシュ
zabbix_server.confのHistoryCacheSize
zabbix_server.confのHistoryIndexCacheSize - Trendキャッシュ
zabbix_server.confのTrendCacheSize - Trend Functionキャッシュ
zabbix_server.confのTrendFunctionCacheSize - Valueキャッシュ
zabbix_server.confのValueCacheSize - VMwareキャッシュ
zabbix_server.confのVMwareCacheSize
以上のキャッシュの中で不足してもZabbixサーバがダウンしないのはHistoryCacheSizeとValueCacheSizeのみです、
HistoryCacheSizeが不足した場合は監視データがロストします。
ValueCacheSizeが不足した場合はDB参照が増加し、Zabbixサーバのパフォーマンスが低下します。
Configurationキャッシュ
各種設定が展開されているキャッシュになります。
ネットワーク・ディスカバリやLLDで動的に設定が変わると仕様率が変動します。
Historyキャッシュ
History Indexキャッシュ
HistoryIndexCacheSizeは不足したらZabbixサーバダウンするので要注意です。Historyキャッシュにアクセスするインデックスを保持するキャッシュになります。
History Writeキャッシュ
HistoryCacheSizeは不足すると監視データがLost(ロスト)します。
ログ監視でバースト出力発生すると発生することがあります。
その際、history syncerプロセスのbusyグラフは(100 / StartDBSyncers)の値で横ばいすると発生が確認できます。
DBのパフォーマンスがよろしくないと、history syncerプロセスのDB更新処理が遅延して発生することがあります。
その際、history syncerプロセスのbusyグラフは100%に近くなります。
グラフで事象を切り分けられますので内部監視のグラフを確認しましょう。
Trendキャッシュ
ヒストリからトレンド(最小・平均・最大)を作成する為のキャッシュになります。
Trend Functionキャッシュ
トレンド関数で使用するキャッシュになります。
当初不要と考えていましたが、トレンド関数とヒストリ関数を併用されるとDB参照率が上昇するので追加されました。
Valueキャッシュ
パフォーマンスの肝になる関数です。
計算アイテム、トリガー評価、各種ヒストリ参照系のマクロ展開で利用します。
不足してもDB参照しますので、動作は問題ないですがパフォーマンスが著しく低下します。
VMwareキャッシュ
VMware監視で利用するキャッシュでVMware collectorプロセス起動しないなら使用しません。VMware collectorプロセスが監視対象のVMwareから収集したデータを展開するキャッシュになります。
基本的にキャッシュサイズの不足はキャッシュサイズの増加になります。
但し、HistoryキャッシュのHistoryCacheSize不足は監視アイテムの設定の問題も考えられます。
Valueキャッシュも計算アイテムやトリガー条件式の参照範囲が広範囲である事が事象発生の一員となりますので、設定の問題も考えられます。
まとめ
以下の不足はキャッシュサイズを増加してください。
それ以外に回避は不可能です。
- zabbix_server.confのCacheSize
- zabbix_server.confのHistoryIndexCacheSize
- zabbix_server.confのTrendCacheSize
- zabbix_server.confのTrendFunctionCacheSize
- zabbix_server.confのVMwareCacheSize
以下は設定の見直しで対応できる可能性があります。
- zabbix_server.confのHistoryCacheSize
大量のデータを週数しているアイテムを特定し、アイテムの設定を見直す。 - zabbix_server.confのValueCacheSize
ValueCacheの仕様率の高いアイテムを確認し、トリガー条件式を見直す。
見直しても対応不可能な場合は、諦めてキャッシュサイズを増やしましょう。