You're really going to have to analyse the load on your web servers / database servers more. Log in to MySQL as root and use "show processlist" to see all the connections at any given time. Consider increasing the maximum, or reducing your usage of connections.
Try not to open more than one database connection in each PHP script. Don't use persistent connections unless you know that you can handle one connection per Apache thread per persistent connection.
You really need to analyse what's causing these connections to be made.
Remember that in principle each web server thread could use one connection at once for each one you open.
Mark