天天看点

mysql show processlist info,mysql show processlist列出了许多进程睡眠,而info = null?

mysql show processlist info,mysql show processlist列出了许多进程睡眠,而info = null?

I'm injecting a stress test into my web app that connects to a mysql server and I'm monitoring the show processlist of mysql.

When the load is high (high swap i/o) I get many processes like that:

| 97535 | db| localhost | userA | Sleep | 515 | | NULL

| 97536 | db| localhost | userA | Sleep | 516 | | NULL

| 97786 | db| localhost | userA | Sleep | 343 | | NULL

| 97889 | db| localhost | userA | Sleep | 310 | | NULL

But I can't understand why are they still there and are not killed? This eventually leads to my app using all max_connections and stop processing incoming requests...

Any idea what are those processes and what are they doing there :) ?

解决方案

Those are idle connections being held by a client. You should make sure that whatever client library you are using (JDBC, ...) is configured to not keep unused connections open so long, or that your # clients * max # of connections isn't too big.