Ho un server applicazioni (jetty 6 su una macchina Linux) che ospita 15 applicazioni individuali (singole di guerra). Ogni 3 o 4 giorni ricevo un avviso da nagios per quanto riguarda il numero di connessioni TCP aperte. Dopo l'ispezione, vedo che la stragrande maggioranza di queste connessioni è verso il server MySQL.Monitoraggio delle perdite di connessione MySQL
netstat -ntu | grep TIME_WAIT
Spettacoli 10.000 connessioni al server MySQL dal server delle applicazioni (notare lo stato è TIME_WAIT). Se riavvio il molo, le connessioni scendono quasi a zero.
Alcuni valori interessanti da uno stato di spettacolo:
mysql> show status;
+--------------------------+-----------+
| Variable_name | Value |
+--------------------------+-----------+
| Aborted_clients | 244 |
| Aborted_connects | 695853860 |
| Connections | 697203154 |
| Max_used_connections | 77 |
+--------------------------+-----------+
A "spettacolo processlist" non mostra nulla di straordinario (che è quello che ci si aspetterebbe in quanto la maggior parte dei collegamenti sono al minimo - ricorda il TIME_WAIT stato dall'alto).
Ho un env di TEST per questo server ma non ha mai avuto problemi. Ovviamente non riceve molto traffico e il server delle applicazioni viene costantemente riavviato, quindi il debug non è di grande aiuto. Immagino di poter scavare in ogni singola app e scrivere un test di carico che colpisca il codice del database, ma questo richiederebbe molto tempo/problemi.
Qualche idea su come sia possibile rintracciare l'applicazione che sta afferrando tutte queste connessioni e non lascerà mai andare?
Non sono sicuro che la ricarica ricarichi effettivamente le impostazioni senza un riavvio completo. Controlla il suo comportamento e la documentazione. – MarkR
Good point - http://serverfault.com/questions/79043/reload-my-cnf-without-restarting-mysql-service – jckdnk111