OK, read my response a few pages pack on getting a lot of postgresql children up and running.
Basically, the way pooling with php/apache works is that each apache thread opens it's own persistant connection, and holds it open until a timeout of something like 10 minutes or more.
So, with php/apache/postgresql, the basic theory is that you have to be able to spawn as many db backends as you can have apache front ends.
I wish this would get changed so that only a few dozen persistant connects could be shared by hundreds of apache children, but right now, I don't know what to do other than crank up the number of postgresql children you can spawn to "catch up" to apache.