GNU/Linux >> Belajar Linux >  >> Linux

Melacak kebocoran koneksi MySQL

Jawabannya sepertinya menambahkan entri berikut di my.cnf di bawah [mysqld]:

wait_timeout=60
interactive_timeout=60

Saya menemukannya di sini (sepanjang jalan di bagian bawah):http://community.livejournal.com/mysql/82879.html

Waktu tunggu default untuk menghentikan koneksi yang tidak aktif adalah 22800 detik. Untuk memverifikasi:

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

EDIT:Saya lupa menyebutkan, saya juga menambahkan yang berikut ke /etc/sysctl.conf saya:

net.ipv4.tcp_fin_timeout = 15

Ini seharusnya membantu menurunkan ambang OS menunggu sebelum menggunakan kembali sumber daya koneksi.

EDIT 2:/etc/init.d/mysql reload tidak benar-benar memuat ulang my.cnf Anda (lihat tautan di bawah)


Mungkin kumpulan koneksi salah dikonfigurasi untuk menahan terlalu banyak koneksi dan menahan terlalu banyak proses yang menganggur.

Selain itu, yang dapat saya pikirkan hanyalah bahwa beberapa bagian kode memegang kumpulan hasil, tetapi tampaknya kecil kemungkinannya. Untuk mengetahui apakah kueri lambat yang waktunya habis, Anda juga dapat mengatur MySQL untuk menulis ke log kueri lambat di file conf, dan kemudian akan menulis semua kueri yang membutuhkan waktu lebih dari X detik, standarnya adalah 10 detik.


Linux
  1. Bagaimana cara menambahkan koneksi MySQL jarak jauh di linux?

  2. Ubah batas waktu MySQL di server

  3. Jatuhkan tabel di MySQL

  1. Metode koneksi MySQL

  2. Penjadwal Acara MySQL

  3. Pencadangan MySQL 1.1

  1. Instal MariaDB atau MySQL di Linux

  2. Memperbaiki database MySQL InnoDB

  3. Pulihkan database mysql - mysql/mysqldump memberikan tabel <database>.<tablename> tidak ada (1146)