[pgpool-general-jp: 1356] Re: pgpoolのプロセスがメモリを大量消費する
"小林 良太郎"
kobayashi @ mec-jp.com
2015年 2月 10日 (火) 23:07:40 JST
石井さん
ありがとう御座います。
アプリケーションのtomcatでコネクションをプールしているので
プロセスが再起動しないのは、そのせいかもしれません。
valgrindを実行して、ログに出力しました。
添付しましたので、ご参照ください。
構成としては、pgpoolを入れたサーバを2台用意して、HA構成にしています。(watchdog使用)
インメモリクエリキャッシュ機能を有効にしています。
配下にDBサーバを3台用意して、Streaming Replication構成にしています。
Tatsuo Ishii wrote:
> 石井です。
>
> > 小林と申します。お世話になります。
> >
> > 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
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: valgrind.log
型: application/octet-stream
サイズ: 172630 バイト
説明: 無し
URL: <http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20150210/8079cdbc/attachment-0001.obj>
pgpool-general-jp メーリングリストの案内