[pgpool-general-jp: 1029] master_slave_sub_mode = 'stream' の時にVSZが1GB以上になる現象について

Hiroaki Aoyama hiro.aoyama @ gmail.com
2012年 1月 23日 (月) 08:21:35 JST


初めまして。青山と申します。

pgpool-IIを起動する際に、pgpool.confで master_slave_sub_mode = 'stream' とすると
pgpoolのプロセスサイズ(VSZ)が1GB以上になるという現象が起きており、困っています。

master_slave_sub_mode = 'slony' とした場合は、VSZは27MBくらいです。

pgpool-IIのバージョンは、3.0.4、3.0.5、3.1.1の3つで試しましたがいずれも同じようになります。
OS環境は、CentOS 5.6(x86_64) 及び Scientific Linux 6.1(x86_64)にて試しましたが、やはり
どちらでも同じようになります。

VSZが1GB以上になっていても、RSSはあまり大きくなってはいないのですが、このまま長期運用を
行ってよいか心配です。

以下、psコマンドの出力結果の抜粋を'stream'の場合と'slony'の場合で記載いたします。

□ master_slave_sub_mode = 'stream' の場合
# ps auxwwwwf
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
postgres  3903  0.2  0.3 1178760 1512 ?        Ss   08:18   0:00
/usr/local/pgpool2/bin/pgpool -f /usr/local/pgpool2/etc/pgpool.conf -d
postgres  3904  0.0  0.1  27696   836 ?        S    08:18   0:00  \_
pgpool: wait for connection request
postgres  3905  0.0  0.1  27696   836 ?        S    08:18   0:00  \_
pgpool: wait for connection request
postgres  3906  0.0  0.1  27696   836 ?        S    08:18   0:00  \_
pgpool: wait for connection request
postgres  3907  0.0  0.1  27696   836 ?        S    08:18   0:00  \_
pgpool: wait for connection request
postgres  3908  0.0  0.1  27696   836 ?        S    08:18   0:00  \_
pgpool: wait for connection request
postgres  3909  0.0  0.1  27696   584 ?        S    08:18   0:00  \_
pgpool: PCP: wait for connection request
postgres  3910  0.0  0.1 1178760  856 ?        S    08:18   0:00  \_
pgpool: worker process

□ master_slave_sub_mode = 'slony' の場合
# ps auxwwwf
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
postgres  3798  0.0  0.2  27696  1460 ?        Ss   08:04   0:00
/usr/local/pgpool2/bin/pgpool -f /usr/local/pgpool2/etc/pgpool.conf -d
postgres  3799  0.0  0.1  27696   840 ?        S    08:04   0:00  \_
pgpool: wait for connection request
postgres  3800  0.0  0.1  27696   840 ?        S    08:04   0:00  \_
pgpool: wait for connection request
postgres  3801  0.0  0.1  27696   840 ?        S    08:04   0:00  \_
pgpool: wait for connection request
postgres  3802  0.0  0.1  27696   840 ?        S    08:04   0:00  \_
pgpool: wait for connection request
postgres  3803  0.0  0.1  27696   840 ?        S    08:04   0:00  \_
pgpool: wait for connection request
postgres  3804  0.0  0.1  27696   588 ?        S    08:04   0:00  \_
pgpool: PCP: wait for connection request
postgres  3805  0.0  0.1  27696   728 ?        S    08:04   0:00  \_
pgpool: worker process

上記の結果は、いずれもpgpool-IIの起動直後のものですが、'stream'の場合、一定時間で子プロセスが
再生成されますため、このまま放っておくと、 pgpool: wait for connection request のプロセスについても
VSZが1GB以上になってしまいます。

この現象を回避する方法はないでしょうか。ご助力いただけますと幸いです。
よろしくお願いいたします。


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