Ubuntu 16.04 Server MySql open_file_limit non supererà 65536

Sto eseguendo Ubuntu 16.04 Server su XenServer e sto eseguendo un problema con il limite di file aperto di MySql.

Ecco quello che ho fatto finora:

  • Costruire una tabella MySQL di row 1000M
  • Opzioni di backup del cloudserver Rackspace
  • Cattura 22 sul passaggio da password antiche e mysql_upgrade
  • Perché non funziona MySQL Profiler per me?
  • Quali strumenti ti consigliamo per get dati dalle banche dati SQLServer 2000?
  • Imansible connettersi a mysql su AWS tramite tunnel ssh
  • sudo nano /etc/security/limits.conf (riferimento)

    * soft nofile 1024000 * hard nofile 1024000 * soft nproc 102400 * hard nproc 102400 mysql soft nofile 1024000 mysql hard nofile 1024000 

    sudo nano /etc/init/mysql.conf (riferimento)

     limit nofile 1024000 1024000 limit nproc 102400 102400 

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf (riferimento)

     [mysqld_safe] open_files_limit = 1024000 [mysqld] open_files_limit = 1024000 

    Quando il precedente non ha funzionato, sono andato al seguente:

    sudo nano /etc/sysctl.conf

     fs.file-max = 1024000 

    sudo nano /etc/pam.d/common-session

     session required pam_limits.so 

    sudo nano /etc/pam.d/common-session-noninterattivo

     session required pam_limits.so 

    sudo nano /lib/systemd/system/mysql.service

     LimitNOFILE=infinity LimitMEMLOCK=infinity 

    Quando accedo il mio account utente, tutto sembra benissimo:

     ulimit -Hn 1024000 ulimit -Sn 1024000 

    Se entri come mysql, mi sembra anche un bene:

     mysql@server:~$ ulimit -Hn 1024000 mysql@server:~$ ulimit -Sn 1024000 

    Tuttavia, quando guardo il proc:

     ps -ef | grep mysql cat /proc/1023/limits | grep open Max open files 65536 65536 files 

    O quando lo guardo in MySql:

     mysql> show global variables like 'open%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 65536 | +------------------+-------+ 

    Dai log (/var/log/mysql/error.log):

    2016-07-25T05: 44: 35.453668Z 0 [Avviso] Imansible aumentare il numero di file max_open_ a più di 65536 (richiesta: 1024000)

    Sono completamente fuori di idee qui. All'inizio ho iniziato con open_files_limit a 1024, e uno di questi deve averlo cambiato, ma ho bisogno di andare più in alto. Sto colpendo questo limite già come ho molti database e tabelle che talvolta hanno molte partizioni.

    Ho anche provato numbers less aggressivi di 1024000, senza fortuna.

    Qualche idea là fuori?

  • Numero di file descrittori: diversi tra / proc / sys / fs / file-nr e / proc / $ pid / fd?
  • Come aumentare in modo permanente il limite dei descrittori di file RabbitMQ
  • strace mostra la lettura di lunga durata dalla presa mysql - mysql richiede molto tempo per eseguire query?
  • uwsgi attraverso il supervisore troppi file aperti
  • Squid che esce dai filedescriptors su CentOS 7
  • One Solution collect form web for “Ubuntu 16.04 Server MySql open_file_limit non supererà 65536”

    Questo funziona per me su Ubuntu Xenial 16.04:

    Creare il dir /etc/systemd/system/mysql.service.d

    Inserisci in /etc/systemd/system/mysql.service.d/override.conf :

     [Service] LimitNOFILE=1024000 

    Esegui ora

     systemctl daemon-reload systemctl restart mysql.service 

    Sì infatti, LimitNOFILE=infinity realtà sembra impostarlo a 65536.

    È ansible validationre quanto sopra facendo:

     cat /proc/$(pgrep mysql)/limits | grep files 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.