GNU/Linux >> Znalost Linux >  >> Linux

Sledování úniků připojení MySQL

Zdá se, že odpovědí je přidání následujících položek do my.cnf pod [mysqld]:

wait_timeout=60
interactive_timeout=60

Našel jsem to zde (úplně dole):http://community.livejournal.com/mysql/82879.html

Výchozí doba čekání na ukončení zastaralého připojení je 22 800 sekund. Ověření:

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

EDIT:Zapomněl jsem zmínit, že jsem také přidal následující do svého /etc/sysctl.conf:

net.ipv4.tcp_fin_timeout = 15

To má pomoci snížit práh, na který OS čeká, než znovu použije prostředky připojení.

ÚPRAVA 2:/etc/init.d/mysql reload skutečně nenačte váš my.cnf (viz odkaz níže)


Je možné, že fondy připojení jsou nesprávně nakonfigurovány tak, aby udržovaly příliš mnoho připojení a zadržovaly příliš mnoho nečinných procesů.

Kromě toho mě napadá jen to, že nějaký kus kódu drží sadu výsledků, ale to se zdá méně pravděpodobné. Chcete-li zjistit, zda se jedná o pomalý dotaz, kterému vyprší časový limit, můžete také nastavit MySQL tak, aby zapisovalo do pomalého protokolu dotazů v souboru conf a pak zapsalo všechny dotazy, které trvají déle než X sekund, výchozí hodnota je 10 sekund.


Linux
  1. Nainstalujte MariaDB nebo MySQL na Linux

  2. Oprava databází MySQL InnoDB

  3. Jak povolit vzdálené připojení k databázovému serveru MySQL

  1. Jak přidat vzdálené připojení MySQL v linuxu?

  2. Nakonfigurujte replikaci zdroje MySQL

  3. Obnovit databázi mysql - mysql/mysqldump poskytuje tabulku <database>.<tablename> neexistuje (1146)

  1. Změňte časový limit MySQL na serveru

  2. Zrušte tabulky v MySQL

  3. Metody připojení MySQL