[pgpool-general-jp: 1355] Re: pgpoolのプロセスがメモリを大量消費する

Tatsuo Ishii ishii @ sraoss.co.jp
2015年 2月 10日 (火) 18:35:41 JST


石井です。

> 小林と申します。お世話になります。
> 
> pgpoolII 3.3.4と、postgreSQL 9.3.5を使用して会員制サイトを運用しています。
> 
> きっかけは不明ですが、pgpoolプロセスのメモリ使用量が増えて
> oomkillerにてkillされる事象が数時間おきに起きております。
> 
> topコマンドをメモリ使用量でsortしてみると、pgpoolプロセスが
> 多いものでメモリを600Mも使用しています。
> 
> 使用量が徐々に増えていって数時間おきにswapまで食い尽くして
> oomkillerでkillされてしまいます。
> 
> <topコマンド結果抜粋>
> -----------------------------------------------------------------------------------
> top - 17:32:19 up 7 days,  1:30,  3 users,  load average: 0.02, 0.04, 0.00
> Tasks: 215 total,   1 running, 214 sleeping,   0 stopped,   0 zombie
> Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
> Mem:   1910636k total,  1894164k used,    16472k free,      864k buffers
> Swap:  4095992k total,  3772432k used,   323560k free,    68652k cached
> 
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
> 16809 root      20   0 1660m 606m  44m S  0.0 32.5   1:48.56 pgpool
> 12756 root      20   0 1130m 585m  36m S  0.0 31.4   1:07.16 pgpool
>  4714 root      20   0 1069m 412m  42m S  0.0 22.1   1:01.20 pgpool
> 10906 root      20   0  501m 173m  25m S  0.0  9.3   0:15.59 pgpool
> 11691 root      20   0  651m  21m  21m S  0.0  1.1   0:28.55 pgpool
> 14277 root      20   0  285m  19m  18m S  0.0  1.0   0:18.17 pgpool
>  9848 root      20   0  290m  18m  17m S  0.0  1.0   0:00.08 pgpool
> 12850 root      20   0  988m  16m  15m S  0.0  0.9   0:55.79 pgpool
> 12878 root      20   0 1201m  11m  11m S  0.0  0.6   1:11.16 pgpool
> -----------------------------------------------------------------------------------
> 
> サーバは以下の構成です。
> ・CentOS6.4
> ・MEM:2GB
> ・SWAP:4GB
> 
> プロセスを定期的に再起動するために
> 以下のように設定変更しても、セッションを使用中なのか、子プロセスは再起動しません。
> 
> <pgpool.confの設定>
> child_life_time = 10
> child_max_connections = 1

これでも子プロセスが再起動しないのは、アプリケーションかアプリケーショ
ンサーバ、あるいは別途コネクションプーラがいて、pgpool-IIへのコネクショ
ンを離さないためだと思われます。

> connection_life_time = 600
> 
> ココまで多くのメモリを消費しているのを見るのは初めてなのですが、
> 原因や対処方法についてご教示頂けると幸いです。

3.3.4でこのような報告は聞いたことがないので、特定の設定や使うSQLのパター
ンで生じするメモリーリークでしょう。

こちらで再現できるテストケースを示していただけるか、valgrindをかけた結
果を見せていただければ、分かると思います。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp


pgpool-general-jp メーリングリストの案内