I'm running prefork as such:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 75
MaxRequestsPerChild 10000
Using ab, I benched a page that has 3 db handles:
session
read
write
session has 1 connection of its own. read/write are currently
sharing a single connection until they cluster.
my postgres is set to 200 connections max
so here's whats odd (benching 5000 connections):
benching 10 concurrent connections- no problem
benching 100 concurrent connections- things seem fine for the first
few hundred connections.
around 400 though, i start getting DB errors.
if i do a quick "select * from pg_stat_activity " it shows me 198
connections ( 2 reserved for admin )
i can't figure out how this number is so large.
max clients (75) + max spare servers (10)= 85 (i 'm not even sure it
can jump up to 85 like that. shouldn't it max as 75? or is that
only for active clients)
85 * 2 ( 1 session , 1 read/write ) = 170
what math am i missing there that will account for another 30+
connections that its trying to make?
at first I thought I had a some errors in my perl code re:
connections, but I only have a single connection made with the
session handle via apache::session & connect_on_init .
for whatever reason, i seem to be creating 99 session and 99 read/
write handles
anyone have a clue?