GNU/Linux >> Linux Esercitazione >  >> Linux

Rintracciare le perdite di connessione MySQL

La risposta sembra essere l'aggiunta delle seguenti voci in my.cnf sotto [mysqld]:

wait_timeout=60
interactive_timeout=60

L'ho trovato qui (fino in fondo):http://community.livejournal.com/mysql/82879.html

Il tempo di attesa predefinito per terminare una connessione non aggiornata è di 22800 secondi. Per verificare:

mysql> show variables like 'wait_%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 60    |
+---------------+-------+

EDIT:ho dimenticato di menzionare, ho anche aggiunto quanto segue al mio /etc/sysctl.conf:

net.ipv4.tcp_fin_timeout = 15

Questo dovrebbe aiutare ad abbassare la soglia che il sistema operativo attende prima di riutilizzare le risorse di connessione.

EDIT 2:/etc/init.d/mysql reload non ricaricherà davvero il tuo my.cnf (vedi il link sotto)


È possibile che i pool di connessione siano configurati in modo errato per mantenere troppe connessioni e stanno trattenendo troppi processi inattivi.

A parte questo, tutto ciò a cui riesco a pensare è che un pezzo di codice trattiene un set di risultati, ma sembra meno probabile. Per rilevare se si tratta di una query lenta che sta scadendo, puoi anche impostare MySQL in modo che scriva in un registro di query lento nel file conf e quindi scriverà tutte le query che impiegano più di X secondi, l'impostazione predefinita è 10 secondi.


Linux
  1. Riparazione di database MySQL InnoDB

  2. Come aggiungere una connessione MySQL remota in Linux?

  3. Elimina tabelle in MySQL

  4. Metodi di connessione MySQL

  5. Utilità di pianificazione eventi MySQL

Crea database e tabelle MySQL usando PHP in XAMPP

Rintracciare dove è andato lo spazio su disco su Linux?

Come consentire la connessione remota al server MySQL nel server cPanel/WHM?

Come configurare una connessione MySQL remota sicura

MySQL remoto in cPanel

Che cos'è MySQL vs MariaDB vs Percona