it-swarm.it

mysql regola automaticamente i valori massimi delle connessioni

Ho impostato connessioni massime a circa 2000 nel file my.cnf.

max_connections=2048

Ho aggiornato a 5.5.20 e ora vedo la seguente riga nel registro degli errori.

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

Perché mysql ha cambiato il valore delle connessioni massime in 214?

# mysqladmin variables | grep max_connections
| max_connections | 214                                               

I file aperti e aperti limitati dal sistema operativo sono 1024

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

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

Il numero di connessioni massime effettivamente utilizzate:

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

Mi sembra a posto. Non puoi avere max_connections più grandi di quello, perché open_files_limit è troppo basso. Per ogni connessione MySQL apre diversi file. Dai un'occhiata qui .

Pertanto, dovrai aumentare il limite di file aperti sul tuo sistema operativo e, successivamente, puoi impostare un valore max_connections più elevato.

6

Questo sembra essere lo stesso problema a cui ho risposto in StackOverflow qui , anche se stavo usando CentOS 7 e MySQL 5.6.26

È necessario aumentare il limite dei file aperti sia per l'utente mysql (in limits.conf) che per il servizio mysql (nel file mysql.service)

aggiungi queste due righe a /etc/security/limits.conf

mysql hard nofile 65535
mysql soft nofile 65535

aggiungi questa riga a /usr/lib/systemd/system/mysqld.service (nella sezione [servizio])

LimitNOFILE=65535

quindi riavviare e verificare che quei messaggi di errore siano scomparsi dal registro degli errori di mysql.

5
MNB

Questo sembra essere un bug nel nuovo mysqld. Ho avuto lo stesso problema. L'impostazione di max_connections su 700 ha funzionato, ma se l'ho impostato su 900, è stato reimpostato su 214 durante l'avvio. Se si fosse trattato di un cambiamento intenzionale, l'avrebbe abbassato a 700 o qualcosa di simile, il valore 214 non ha senso.
Ad ogni modo, aumentando il limite del descrittore con ulimit -n risolve il problema.

0
Bart K