Re: Leaky Perl / DBIx / Postgres 9.0.1 Trio
От | Tom Molesworth |
---|---|
Тема | Re: Leaky Perl / DBIx / Postgres 9.0.1 Trio |
Дата | |
Msg-id | 4F7C9319.60906@audioboundary.com обсуждение исходный текст |
Ответ на | Leaky Perl / DBIx / Postgres 9.0.1 Trio (Eliot Gable <egable+pgsql-general@gmail.com>) |
Ответы |
Re: Leaky Perl / DBIx / Postgres 9.0.1 Trio
|
Список | pgsql-general |
Hi, On 04/04/12 19:21, Eliot Gable wrote: > I have a Perl daemon handling some events on a system which inserts or > updates rows in Postgres, and something is causing memory usage to > grow. I see the RSS memory size allocated to the Postgres connection > continual going up (slowly) and the RSS size allocated to the Perl > daemon also continually going up (slowly). The Perl daemon is using > DBIx to make insert and update queries to the Postgres DB. I believe DBIx is more of a namespace than a specific module - do you mean DBIx::Class or DBI perhaps? If the former, the IRC channel #dbix-class on irc.perl.org tends to be very helpful in tracing problems like this, particularly if you can provide a reproducible test case. > There is only one connection open between the Perl daemon and the > Postgres DB. That connection stays open until the daemon exits or is > killed. When the daemon is killed, the Postgres back end is terminated > and all of its memory is released. > > Any suggestions on how to go about troubleshooting this would be > useful. Most specifically, I would like to know how to find out what > the Postgres process for that connection is doing with all that > memory. Is there a way I can see what the memory is allocated for? > Would running GDB on the Postgres process help? Is there any logging I > can turn on which might help shed some light on what's using the > memory? Anything in particular anyone knows about which I should look > for which might cause both Perl and Postgres memory usage to climb > continually? On the Perl side, Devel::Size and possible Test::MemoryGrowth may be of some use in tracing where the memory is going. Does the memory usage hit a ceiling at any point, or does it carry on until all virtual memory is exhausted? You could try running the postgres and perl daemons with lower ulimit -m / ulimit -v settings if the increase in memory is too slow to test this in a reasonable timeframe. Other than that, maybe try looking for statement handles that aren't closed or long-running transactions? best regards, Tom
В списке pgsql-general по дате отправления: