[pgpool-general: 3353] Re: Master/Slave (stream) mode - Memory depletion
Tatsuo Ishii
ishii at postgresql.org
Fri Dec 5 22:06:48 JST 2014
Great!
Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp
> Hi Muhammad,
>
> I'm glad to report that the problem seems to be solved, the daemons are
> running for over 17 hours and the memory usage remains stable.
>
> Regards
> Christian
>
> On 04.12.2014 17:04, Christian Affolter wrote:
>> Hi
>>
>> thank you very much!
>>
>> I've installed the current V3_4_STABLE Git branch on both nodes and
>> restarted the pgpool-II daemons. I will check the memory usage by
>> tomorrow and provide feedback.
>>
>> By the way, if any Gentoo users are on this list, I've created some new
>> (live) dev-db/pgpool2 ebuilds, which can be found on GitHub [1].
>>
>> Thanks again and best regards
>> Christian
>>
>>
>> [1]
>> https://github.com/stepping-stone/sst-gentoo-overlay/tree/master/dev-db/pgpool2
>>
>> On 04.12.2014 13:35, Muhammad Usama wrote:
>>> Hi
>>>
>>> I have found the problem and pushed the fix for this memory leak in
>>> master and 3.4 branch.
>>>
>>> http://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=2636236af59b90f7e61054518607ca506bb50135
>>>
>>> Thanks
>>> Kind regards,
>>> Muhammad Usama
>>>
>>> On Wed, Dec 3, 2014 at 1:03 PM, Christian Affolter
>>> <c.affolter at stepping-stone.ch <mailto:c.affolter at stepping-stone.ch>> wrote:
>>>
>>> Great, thanks a lot for looking into it.
>>>
>>> Regards
>>> Christian
>>>
>>> On 03.12.2014 00:53, Tatsuo Ishii wrote:
>>> > I was able to reproduce the problem with 3.4.0
>>> >
>>> > 1) run pgbench -i
>>> > 2) run pgbench -T 600 -S -c 1 -M extended test
>>> > 3) run ps x as pgpool user and find pgpool process which is bound
>>> to the pgbench session #2
>>> > 4) run ps and watch the process size like 'while true; do ps l
>>> 22942; sleep 1; done'
>>> >
>>> > I see in #4, the process size increases rapidly:
>>> > 1 1000 22942 22432 20 0 5145776 5109900 - S pts/25
>>> 1:14 pgpool: t-i
>>> > F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY
>>> TIME COMMAND
>>> > 1 1000 22942 22432 20 0 5170364 5134368 - R pts/25
>>> 1:15 pgpool: t-i
>>> > F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY
>>> TIME COMMAND
>>> > 1 1000 22942 22432 20 0 5194952 5159100 - S pts/25
>>> 1:15 pgpool: t-i
>>> > F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY
>>> TIME COMMAND
>>> > 1 1000 22942 22432 20 0 5227736 5187716 - R pts/25
>>> 1:16 pgpool: t-i
>>> > F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY
>>> TIME COMMAND
>>> > 1 1000 22942 22432 20 0 5252324 5212448 - S pts/25
>>> 1:16 pgpool: t-i
>>> >
>>> > Note that even if I remove '-M extended' part (which means using
>>> > extended protocol, i.e. prepare statements), I see the memory usage
>>> > growing. So it seems this is nothing to do with whether prepared
>>> > statement is used or not.
>>> >
>>> > We will look into this.
>>> >
>>> > Best regards,
>>> > --
>>> > Tatsuo Ishii
>>> > SRA OSS, Inc. Japan
>>> > English: http://www.sraoss.co.jp/index_en.php
>>> > Japanese:http://www.sraoss.co.jp
>>> >
>>> >> Dear pgpool users
>>> >>
>>> >> I'm running two pgpool-II 3.4.0 instances in master/slave streaming
>>> >> replication mode, with enabled watchdog and virtual IP control.
>>> In the
>>> >> backend are two PostgreSQL 9.3.5 servers (one master and one slave)
>>> >> involved. In the frontend are two Wildfly 8.1.0 application servers
>>> >> having a xa-data-source configured, which connects to the VIP of the
>>> >> pgpool instances.
>>> >>
>>> >> After around two days, the memory of the active pgpool-II
>>> instance (the
>>> >> one holding the VIP) gets depleted completely and all the pgpool-II
>>> >> processes together use around 6 GiB of memory until the kernels
>>> >> out-of-memory manager kicks in or one stops the instance manually.
>>> >>
>>> >> The applications running within the Wildfly application servers are
>>> >> proprietary, so I don't have access to the source code. What I see,
>>> >> after turning statement logging on on the PostgreSQL server, is
>>> that the
>>> >> following queries hit the master all two seconds from both servers:
>>> >>
>>> >> postgres[20069]: [86-1] LOG: execute <unnamed>: select user0_.id as
>>> >> id1_20_, user0_.company as company2_20_, user0_.created as
>>> created3_20_,
>>> >> user0_.credentials_id as credent10_20_, user0_.email as email4_20_,
>>> >> user0_.firstName as firstNam5_20_, user0_.lastModified as
>>> lastModi6_20_,
>>> >> user0_.mergedTo as mergedTo7_20_, user0_.name as name8_20_,
>>> >> user0_.organisation as organis11_20_, user0_.phone as phone9_20_ from
>>> >> bcUser user0_ where user0_.email=$1
>>> >> postgres[20069]: [86-2] DETAIL: parameters: $1 =
>>> 'system at example.com <mailto:system at example.com>'
>>> >>
>>> >> The queries are triggered from the HTTP load-balancer's alive-check,
>>> >> which is executed every two seconds on one of the applications
>>> running
>>> >> within the Wildfly servers.
>>> >>
>>> >> Does anyone have an idea why pgpool is allocating all the memory,
>>> or how
>>> >> to further debug this?
>>> >>
>>> >> It would also be very helpful if anyone having a similar working
>>> setup
>>> >> (Wildfly or JBoss) could share the data-source settings.
>>> >>
>>> >> There was a similar thread (3162 - Memory leaks) on the mailing list
>>> >> around September [1].
>>> >>
>>> >>
>>> >> Attached you will find an anonymised pgpool-II and xa-data-source
>>> >> configuration, please let me know if you need more.
>>> >>
>>> >>
>>> >> Many thanks in advance
>>> >> Christian
>>> >>
>>> >>
>>> >>
>>> >> [1]
>>> >>
>>> http://www.pgpool.net/pipermail/pgpool-general/2014-September/003204.html
>
>
> _______________________________________________
> pgpool-general mailing list
> pgpool-general at pgpool.net
> http://www.pgpool.net/mailman/listinfo/pgpool-general
More information about the pgpool-general
mailing list