After a routine restart of our MySQL 3.23 server today, we began getting the following PHP error message during times of moderately high database server load:

Warning: MySQL Connection Failed: Can't create a new thread (errno 11). If you are not out of
available memory, you can consult the manual for a possible OS-dependent bug in
/www/data/functions/common/auth.inc on line 33


Line 33 of the that file is a call to mysql_pconnect(). However, if I comment out that line temporarily, the error message simply moves to another line in another file that is also a call to mysql_pconnect(). If I comment out all of my mysql_pconnect()'s then the error goes away, although obviously this breaks my entire website.

I am definitely not out of memory. top says:

 02:38:23 up 45 days,  9:23,  3 users,  load average: 0.04, 0.13, 0.16
211 processes: 208 sleeping, 1 running, 2 zombie, 0 stopped
CPU states:  18.5% user,   3.6% system,   0.0% nice,  77.9% idle
Mem:   2069204K total,  1724224K used,   344980K free,    52840K buffers
Swap:        0K total,        0K used,        0K free,  1486132K cached

Also, the maximum number of OS threads set in my kernel is 14336. I can't see any evidence that MySQL is trying to exceed this value (see the thread status variables I pasted below).

On a possibly related note, I have discovered the following fact. If I restart MySQL, the error message goes away temporarily. Then, as my site runs for a while, the number of open persistent connections to the database slowly increases from 0 up to 250. When it hits 250 or 251, the error message suddenly returns. I do not understand the significance of the number 250, although I have noticed that when I run a SHOW STATUS, the value of max_used_connections rises from an initial value of 0 (when the server starts) up to 251 (at which point the error message starts), and furthermore this rise takes place at about the same rate as the rise in the number of persistent connections. I don't know whether this is important or not, although I am intrigued by the fact that this problem only happens when max_used_connections and the number of open persistent connections hits the 251 "ceiling."

Here are some select variables from SHOW STATUS as they appear once the server hits the wall and starts giving off this error message:

| Max_used_connections     | 251        |
| Connections              | 60980      |
| Threads_cached           | 5          |
| Threads_created          | 4303       |
| Threads_connected        | 86         |
| Threads_running          | 1          |

If anyone has any ideas, please let me know. Thanks!

Mike


-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to