it-swarm.asia

mysql otomatis menyesuaikan nilai koneksi maks

Saya telah mengatur koneksi maks ke sekitar 2000 di file my.cnf.

max_connections=2048

Saya telah meningkatkan ke 5.5.20 dan sekarang saya melihat baris berikut di log kesalahan.

120201 19:40:24 [Warning] Changed limits: max_open_files: 1024  max_connections: 214  table_cache: 400

Mengapa mysql mengubah nilai koneksi maks ke 214?

# mysqladmin variables | grep max_connections
| max_connections | 214                                               

File lunak dan keras yang terbuka dibatasi oleh OS adalah 1024

# ulimit -Sa | grep "open files"
open files                      (-n) 1024

# ulimit -Ha | grep "open files"
open files                      (-n) 1024

Jumlah koneksi maks yang benar-benar digunakan:

# mysql -e"show status like '%used_connections%'"
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 95     |
+----------------------+-------+
11
shantanuo

Sepertinya tidak masalah bagi saya. Anda tidak dapat memiliki max_connections lebih besar dari itu, karena Anda open_files_limit terlalu rendah. Untuk setiap koneksi, MySQL membuka beberapa file. Lihatlah di sini .

Jadi, Anda harus meningkatkan batas file terbuka pada OS Anda, dan setelah itu, Anda dapat memberi nilai max_connections lebih tinggi.

6

Ini tampaknya menjadi masalah yang sama dengan yang saya jawab dalam stackoverflow di sini , meskipun saya menggunakan CentOS 7 & MySQL 5.6.26

Anda perlu menaikkan batas file terbuka Anda baik untuk pengguna mysql (di limits.conf) dan untuk layanan mysql (dalam file mysql.service)

tambahkan dua baris ini ke /etc/security/limits.conf

mysql hard nofile 65535
mysql soft nofile 65535

tambahkan baris ini ke /usr/lib/systemd/system/mysqld.service (di bagian [layanan])

LimitNOFILE=65535

kemudian akhirnya reboot dan periksa apakah pesan-pesan kesalahan itu telah hilang dari log kesalahan mysql Anda.

5
MNB

Tampaknya ada beberapa bug di mysqld baru. Saya memiliki masalah yang sama. Pengaturan max_connections menjadi 700 berhasil, tetapi jika saya atur ke 900, itu diatur ulang ke 214 saat startup. Jika ini adalah perubahan yang disengaja, maka itu akan menurunkannya ke 700 atau sesuatu yang serupa, nilai 214 tidak masuk akal.
Bagaimanapun, menaikkan batas deskriptor dengan ulimit -n memperbaiki masalah.

0
Bart K