zabbix 1.8.1 のメモリ使用量のチューニングについて

お世話になってます。
1.8.1(ソースからインストール)にて
1サーバのアイテム65個(計算アイテム&ログ監視あり)、
5サーバの監視を行っています。

サーバにのせるメモリ量が諸事情により512MBしか乗せることが
できず、現状スワップを使用してメモリを食いつぶしているので
何とか使用量を減らそうとチューニング中です。

Mysqlについてはできるだけ、パフォーマンスに影響が出ない程度に、メモリ使用量を減らしたのですが、
zabbix-server自体のメモリ使用量が肥大化しており、使っているプロセスだと平均160M前後を使用しており、何とかこれを抑えられないかと調べております。

質問としては、下記になります。

・sabbix-server側で一定アクセスor一定時間でプロセス再起動みたいな機構はないか
(ApacheのMaxRequestsPerChildみたいなやつです)
・メモリ使用量を抑えるために他にzabbix側でチューニング可能な個所はあるか

以上、よろしくお願いします。
やっぱ計算アイテムやログ取得のアイテムを使ってることが原因ですかねぇ…

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー KAZ の写真

kugu_kuguさん

サーバにのせるメモリ量が諸事情により512MBしか乗せることが
できず、現状スワップを使用してメモリを食いつぶしているので
何とか使用量を減らそうとチューニング中です。

swapが多発していると言うことですよね?
事象的には下記の流れと思っていいですか?

1)Momoryが枯渇
2)swap多発
3)多分CPU使用率が高くなる。(ロードアベレージも高くなる)

512MBだとapacheとMySQLだけで厳しいような…A(^^;

どのプロセスが、どの位使用している分かりますか?
※:psコマンド等

Zabbixサーバを止めるとswap多発は発生しなくなりますか?

ユーザー kugu_kugu の写真

KAZさんは書きました:
kugu_kuguさん

1)Momoryが枯渇
2)swap多発
3)多分CPU使用率が高くなる。(ロードアベレージも高くなる)

512MBだとapacheとMySQLだけで厳しいような…A(^^;
どのプロセスが、どの位使用している分かりますか?
※:psコマンド等

Zabbixサーバを止めるとswap多発は発生しなくなりますか?

Apacheの起動プロセス数を一桁にして、mysqlをカツカツにチューニングしてるので、Apache,mysqlを起動しても512MBでも余裕だったりします。

CPU使用率は若干高い程度ですね、ロードアベレージは高くなっていません。
zabbix-serverを止めるとswapはほとんどなくなります。
zabbix-server起動直後はメモリに余裕はありますし、プロセスが使用しているメモリ使用量は1プロセス50M前後ですね。1日ほっとくと150Mぐらいまで膨れ上がるプロセスが3〜4個いる形ですね。

プロセス数は全部で90ぐらいです。(zabbix-server込)

ユーザー KAZ の写真

kugu_kuguさん

Apacheの起動プロセス数を一桁にして、mysqlをカツカツにチューニングしてるので、Apache,mysqlを起動しても512MBでも余裕だったりします。

なるほど…

CPU使用率は若干高い程度ですね、ロードアベレージは高くなっていません。
zabbix-serverを止めるとswapはほとんどなくなります。
zabbix-server起動直後はメモリに余裕はありますし、プロセスが使用しているメモリ使用量は1プロセス50M前後ですね。1日ほっとくと150Mぐらいまで膨れ上がるプロセスが3〜4個いる形ですね。

zabbix-serverを止めるとswapしなくなるってことはzabbix-serverっぽいですかね…

調べたのはpsコマンドでしょうか?CentOSでps aux|grep zabbixと実行するとVSZとRSSの二つの値が取れ、リアルメモリはRSSの方です。

ユーザー kugu_kugu の写真

KAZさんは書きました:
調べたのはpsコマンドでしょうか?CentOSでps aux|grep zabbixと実行するとVSZとRSSの二つの値が取れ、リアルメモリはRSSの方です。

はい、そういえばリアルメモリはRSSでしたね…、改めて見たところ、起動直後は1プロセス4M前後で、スワップしまくってるときは60MB/プロセスが数個いますね。
mysqldよりRSSを使っているzabbix-serverプロセスがいたりします。

ちなみに使ったコマンドは「ps aux | sort -k5 -n」としてます。VSZの少ない順に並べてくれるので便利です。RSSなら「k5」→「k6」
ですね。

ユーザー kodai の写真

こんにちは。

メモリが512MBだとつらいところもあるとは思いますが、それほど多くの監視項目があるようでもないですし、Zabbixサーバの起動プロセス数を絞ってみてはどうでしょうか。

具体的には、/etc/zabbix/zabbix_server.confで

StartPollers=
StartTrappers=

あたりの設定がデフォルトでは5に設定されていますので、これを可能な限り(管理->キュー画面でアイテムがキューに溜まらない程度に)少なくすればメモリ使用量も削減できるかもしれません。

ユーザー kugu_kugu の写真

kodaiさんは書きました:
こんにちは。

メモリが512MBだとつらいところもあるとは思いますが、それほど多くの監視項目があるようでもないですし、Zabbixサーバの起動プロセス数を絞ってみてはどうでしょうか。

具体的には、/etc/zabbix/zabbix_server.confで

StartPollers=
StartTrappers=

あたりの設定がデフォルトでは5に設定されていますので、これを可能な限り(管理->キュー画面でアイテムがキューに溜まらない程度に)少なくすればメモリ使用量も削減できるかもしれません。

了解しました。上記設定を試してみて、削れるところまで削ってみたいと思います。

ところで話はすこし変わりますが、zabbixに自分自身のサーバ監視もやらせているのですが、
空きメモリ容量を見てみると緩やかな右下への下降線を辿っています。でメモリを食い潰して、スワップを使い始める感じです。
psの状態を比較するに「zabbix-server」プロセスがメモリ領域を徐々に使用しているように見えるのですが、何か情報をため込んでいるのでしょうか?

 ってここまでくるとソースを追わないとだめですかね・・・
ちなみに上記kodaiさんの施策を実施して数時間見てみましたが、同じ状況です。

計算アイテム(空きメモリ関連を計算させてます)&ログ監視(具体的にはlog["/var/log/messages","","",50] で監視、他2ファイル)
をしている影響があるのでしょうか。

ユーザー KAZ の写真

kugu_kuguさん

本家のサポートを覗いてきました。
1.8.1のZabbixサーバでメモリ・リークが報告されていて、1.8.2で解消されるらしいです。

key:ZBX-2051
[url=https://support.zabbix.com/browse/ZBX-2051]Possible memory leak in zabbix 1.8.1 on CenOS 5.4 Final[/url]

ユーザー kugu_kugu の写真

KAZさんは書きました:
本家のサポートを覗いてきました。
1.8.1のZabbixサーバでメモリ・リークが報告されていて、1.8.2で解消されるらしいです。

key:ZBX-2051
Possible memory leak in zabbix 1.8.1 on CenOS 5.4 Final

了解です。という事は1.8.2がリリースされるまではzabbix-serverの定期再起動が必要っぽいですね。ちょっと検討してみます。
また1.8.2のリリースが遅いようなら1.6へのダウングレードも検討してみます。

あと、1.8.2がリリースされたら、1.8.1→1.8.2にアップグレードが必要と。
アップグレード手順ってありましたっけ…

ユーザー KAZ の写真

kugu_kuguさん

1.8.2はもうちょっとでリリースされるかと。
アップグレード方法は1.8,2が出ないと分からないかと…A(^^;

バージョンが変わらなければ、実行ファイルとwebフロントエンドの差替えで行けるはずですが、リビジョンが低いうちはSQLの実行も必要になることもあります。