Re: Postfix/Maildrop and too many connections issues - Mailing list pgsql-general

From Gregory Youngblood
Subject Re: Postfix/Maildrop and too many connections issues
Date
Msg-id D01D3AA6-AEDE-4FA3-9DD0-55D58089D0B1@netio.org
Whole thread Raw
In response to Postfix/Maildrop and too many connections issues  (Sven Willenberger <sven@dmv.com>)
List pgsql-general
I run postfix and have it connected to postgresql for just about
everything. Postfix is very sloppy on the database side, or so it seems.

I ended up having to configure postfix to limit the number of
processes it will start, and then make sure postgres has more than
that connections available too.

In postfix, I set "default_process_limit = 10" in main.cf. In
postgresql, I set max connections to 256, with 4 reserved for super
user. My mail volume also isn't too bad, typically, so I can get away
with setting this to 10. In some cases, I think each postfix process
is opening a new database connection for every lookup. And, if a
process needs to lookup 2 or 3 items, it uses new connections for
every one. Then, the connections don't get closed until those
processes are killed a little while later.

Pure speculation, but it's about the only thing I can think of (short
of going through and analyzing the source code) that would explain
the disparity between postfix processes and postgres connections.

With that, I have the following in ps (after running for a while, so
things are mostly stable):

Postgres Connections (not including stats): 43

Postfix:
transport: 15
virtual: 13
mailbox: 8
domains: 2

Courier IMAP/POP
courier: 5

These numbers will fluctuate with mail traffic. And, they do not
correspond with the open # of postfix processes (19 processes: 1
master, 1 qmgr, 2 trivial rewrite, 7 smtpd, 6 cleanup, 1 pickup, 1
virtual).

That leads me to believe that the postfix database interface (for
postgres at least) is pretty sloppy. I've been planning to try a
pooling program, just to see if that would make a difference, but I
haven't had time to do any research or practical testing to find
out.  Does anyone know if this problem occurs when using postfix with
LDAP servers or mysql ?

Thanks,
Greg

On Jun 21, 2005, at 12:00 PM, Sven Willenberger wrote:

> We have a system set up whereby postfix and maildrop gather user info
> from a pg database (7.4.2 on FreeBSD 5.2.1) to do local mail
> acceptance
> and delivery. I have configured max connections at 512 but I find that
> this is not enough and I get "connection limit exceeded for
> non-superusers" errors. I see upon ps ax that there are hundreds of
> idle
> connections (state I).
>
> Is there any way on the server end to close these connections (the
> process is apparently for postfix and then maildrop to open a
> connection, run one select statement, and supposedly close the
> connection). If not, would pgpool help in this case? Since all the
> connections are basically 2 users (one for the mail delivery system
> and
> another for the mail retrieval), are there any such "connections"
> limitation by pgpool (i.e. if we get a spike of 700-1000 queries each
> with their own "connection")?
>
> Thanks,
>
> Sven
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>


pgsql-general by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Escape handling in strings
Next
From: Gregory Youngblood
Date:
Subject: Re: Postfix/Maildrop and too many connections issues