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?

Reply via email to