Zabbixの監視データとCentOS7の freeコマンドの値が一致しない件

Zabbixの監視データとCentOS7の freeコマンドの値が一致しない件
あぱーブログ
2017年11月18日  カテゴリー:Zabbix  タグ:
Pocket
LINEで送る

Zabbix で監視しているメモリの buffers + cached の値と、CentOS7 の freeコマンドの buff/cache(バッファとキャッシュの合計)の値がどうもズレてるな〜 とここ最近思っていたのですが、ついつい調査を後回しにしていました。このままだと年を越してしまいそうです(^^;) そこで今回は、Zabbixの監視データとCentOS7の freeコマンドの値が一致しない原因を調べてみました。

症状

Zabbixが取得しているメモリ使用状況の値と free コマンドの値が、ぴったり一致することはないのですが、監視対象が CentOS7 の場合はかなり大きく buffers + cached の値がズレます。CentOS6 ではこのようなことはありませんでした。

Zabbix の buffers + cached = 372,256,768

 

free コマンドの buff/cache(バッファとキャッシュの合計)= 651,362,304

一致しない原因

一致しない原因はこれでした。

man free(1) より引用 (free from procps-ng 3.3.10)

buffers
 Memory used by kernel buffers (Buffers in /proc/meminfo)

cache
 Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)

buff/cache
 Sum of buffers and cache

 
どういう事かというと、CentOS6 の free コマンドの buffers と cached は /proc/meminfo の Buffers と Cached の値そのまま表示していました。Zabbixが取得している値もぼぼこれと一致します。

 
ところが CentOS7 の free コマンド(procps-ng 3.3.10)の cache の定義が /proc/meminfo の Cached + Slab(これもキャッシュの一種です)に変わりました。そのため Buffers + Cached + Slab の合計が buff/cache(バッファとキャッシュの合計)として表示されているのがこのズレの原因です。

つまり Slabキャッシュの分だけ Zabbixの監視データとズレが生じます。

おわりに

メモリが足りなくなればバッファとキャッシュは解放されますので、Zabbix で available(実質的なメモリ空き容量)の値をしっかり監視しておけば、このズレはあまり気にする必要はないでしょう。

スポンサーリンク
Pocket
LINEで送る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です