Modifica del limite di file aperti in mysql 5.5


9

Sto riscontrando un problema con mysql 5.5 in esecuzione su Ubuntu 12.04 con il parametro open-files-limit.

Di recente ho notato alcuni problemi dovuti al limite 1024, e in realtà il limite del sistema principale è stato impostato su 1024, quindi ho modificato /etc/security/limits.conf con il seguente:

* soft nofile 32000
* hard nofile 32000
root soft nofile 32000
root hard nofile 32000

Successivamente, controllo il valore ulimit per root e anche per l'utente mysql, entrambi hanno restituito il nuovo valore: 32000, quindi suppongo che la modifica sia già stata eseguita.

Ho anche modificato il valore nel file my.cnf, impostando open-files-limit su 24000, in questo modo:

open-files-limit    = 24000

Ora arriva la parte dispari, quando riavvio il servizio mysql e controllo la variabile open_files_limit, restituisce che è ancora impostato su 1024, quindi sto avendo gli stessi problemi che prima (ovviamente), ho provato a usare open-files-limit invece open_files_limit nel file di configurazione my.cnf, stesso risultato, MA se eseguo l'override del comando di servizio per avviare il servizio e iniziare a utilizzare solo mysqld (nessun parametro aggiuntivo), il servizio si avvia e quando controllo il parametro restituisce 32000 ... Non so da dove stia prendendo quel valore, dato che non è impostato su my.cnf e non viene dato attraverso la riga di comando, almeno, non per me stesso.

Qualche idea sul perché non sta funzionando il cambiamento e su come risolverlo nel modo normale (avviandolo tramite il servizio ...)?

Risposte:


9

Ho finalmente trovato il problema, sembra che upstart non utilizzi i parametri definiti in /etc/security/limits.conf, quindi quando avvio mysql tramite il comando di servizio (e quindi, sotto upstart), ignora quei limiti e usi definiti il valore predefinito 1024.

La soluzione è modificare il file mysql.conf che definisce il servizio di avvio, che si trova in /etc/init/mysql.conf e aggiungere le seguenti righe prima del blocco pre-avvio:

# NB: Upstart scripts do not respect
# /etc/security/limits.conf, so the open-file limits
# settings need to be applied here.
limit nofile 32000 32000
limit nproc 32000 32000

Il primo valore definisce il limite software, l'altro il limite rigido, una volta aggiunte quelle righe, il servizio funziona come previsto applicando i valori definiti nel file my.conf.

Questa limitazione dovrebbe applicarsi per ogni servizio di avvio che è definito in / etc / init, quindi se qualsiasi servizio ha lo stesso problema con il limite di file aperti, anche questa soluzione dovrebbe funzionare.


1
Bel lavoro lì!
pkhamre,

Questo ha fatto il trucco ... uomo che è stato un dolore
Chad Scira,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.