From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | jody brownell <jody(dot)brownell(at)Q1Labs(dot)com>, pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Postgres consuming way too much memory??? |
Date: | 2006-06-15 17:17:46 |
Message-ID: | 200606151717.k5FHHk901846@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Added to TODO:
> o Fix memory leak from exceptions
>
> http://archives.postgresql.org/pgsql-performance/2006-06/msg0$
---------------------------------------------------------------------------
Tom Lane wrote:
> "jody brownell" <jody(dot)brownell(at)Q1Labs(dot)com> writes:
> > BEGIN
> > INSERT into attacker_target_link (attacker_id, target_id) values (p_attacker, v_target);
> > v_returns_size := v_returns_size + 1;
> > v_returns[v_returns_size] := v_target;
>
> > EXCEPTION WHEN unique_violation THEN
> > -- do nothing... app cache may be out of date.
> > END;
>
> Hmm. There is a known problem that plpgsql leaks some memory when
> catching an exception:
> http://archives.postgresql.org/pgsql-hackers/2006-02/msg00885.php
>
> So if your problem case involves a whole lot of duplicates then that
> could explain the initial bloat. However, AFAIK that leakage is in
> a transaction-local memory context, so the space ought to be freed at
> transaction end. And Linux's malloc does know about giving space back
> to the kernel (unlike some platforms). So I'm not sure why you're
> seeing persistent bloat.
>
> Can you rewrite the function to not use an EXCEPTION block (perhaps
> a separate SELECT probe for each row --- note this won't be reliable
> if there are concurrent processes making insertions)? If so, does
> that fix the problem?
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
>
--
Bruce Momjian http://candle.pha.pa.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
From | Date | Subject | |
---|---|---|---|
Next Message | Vivek Khera | 2006-06-15 17:47:35 | Re: Which processor runs better for Postgresql? |
Previous Message | Dan Harris | 2006-06-15 17:17:25 | Re: Is it possible to start two instances of postgresql? |