Estou executando o Ubuntu 16.04 Server no XenServer e estou enfrentando um problema com o limite de arquivos abertos do MySql.
Aqui está o que eu fiz até agora:
sudo nano /etc/security/limits.conf (referência)
* 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 (referência)
limit nofile 1024000 1024000
limit nproc 102400 102400
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf (referência)
[mysqld_safe]
open_files_limit = 1024000
[mysqld]
open_files_limit = 1024000
Quando o procedimento acima não funcionou, passei ao seguinte:
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-noninteractive
session required pam_limits.so
sudo nano /lib/systemd/system/mysql.service
LimitNOFILE=infinity
LimitMEMLOCK=infinity
Quando entro na minha conta de usuário, tudo fica bem:
ulimit -Hn
1024000
ulimit -Sn
1024000
Se eu entrar como mysql, também ficará bom:
mysql@server:~$ ulimit -Hn
1024000
mysql@server:~$ ulimit -Sn
1024000
No entanto, quando eu olho para o proc:
ps -ef | grep mysql
cat /proc/1023/limits | grep open
Max open files 65536 65536 files
Ou quando eu olho para ele no MySql:
mysql> show global variables like 'open%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65536 |
+------------------+-------+
Nos logs (/var/log/mysql/error.log):
2016-07-25T05: 44: 35.453668Z 0 [Aviso] Não foi possível aumentar o número de max_open_files para mais de 65536 (solicitação: 1024000)
Estou completamente sem idéias aqui. No começo, comecei com open_files_limit em 1024, e um dos itens acima deve ter mudado, mas preciso que ele suba mais. Já estou atingindo esse limite, pois tenho muitos bancos de dados e tabelas que às vezes têm muitas partições.
Eu até tentei números menos agressivos que 1024000, sem sorte.
Alguma idéia por aí?