Lá se vão os dias em que simplesmente mudar as configurações no arquivo /etc/my.cnf seria suficiente. Entre para o novo mundo do systemd.
O systemd em si tem um limite que controla quantos arquivos de um determinado serviço podem ser abertos, independentemente do que você configurar no arquivo /etc/my.cnf ou no arquivo /etc/security/limits.conf.
Para aumentar os arquivos abertos do MariaDB sendo executados em um sistema RHEL ou CentOS 7 com systemd, faça o seguinte.
Primeiro, crie um novo diretório que irá realizar as mudanças no serviço MariaDB para ele. Ao fazer as alterações aqui, tenha certeza de que as atualizações de pacotes que iriam/poderiam sobrescrever o mariadb.service não sobrescreva suas próprias mudanças.
$ mkdir -p /etc/systemd/system/mariadb.service.d/
Em seguida, configure o systemd para que o serviço do MariaDB possa abrir mais arquivos.
$ cat /etc/systemd/system/mariadb.service.d/limits.conf [Service] LimitNOFILE=10000
Para que ele fique ciente dessas mudanças, é preciso recarregar o serviço do systemd. Isso só recarrega as configurações que o systemd conhece, ele não irá reiniciar qualquer serviço efetivamente.
$ systemctl daemon-reload
A linha acima diz ao systemd que o MariaDB pode abrir 10 mil arquivos próprios. Reinicie o serviço do MariaDB agora para consolidar essas alterações.
$ systemctl restart mariadb
E tudo está resolvido.
Aumente o valor do arquivo /etc/systemd/system/mariadb.service.d/limits.conf caso seja necessário.
Essas mudanças também são “documentadas” no arquivo mariadb.service do serviço no systemd.
$ cat /usr/lib/systemd/system/mariadb.service ... # It's not recommended to modify this file in-place, because it will be # overwritten during package upgrades. If you want to customize, the # best way is to create a file "/etc/systemd/system/mariadb.service", # containing # .include /lib/systemd/system/mariadb.service # ...make your changes here... # or create a file "/etc/systemd/system/mariadb.service.d/foo.conf", # which doesn't need to include ".include" call and which will be parsed # after the file mariadb.service itself is parsed. # # For more info about custom unit files, see systemd.unit(5) or # http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F # For example, if you want to increase mariadb's open-files-limit to 10000, # you need to increase systemd's LimitNOFILE setting, so create a file named # "/etc/systemd/system/mariadb.service.d/limits.conf" containing: # [Service] # LimitNOFILE=10000 # Note: /usr/lib/... is recommended in the .include line though /lib/... # still works. # Don't forget to reload systemd daemon after you change unit configuration: # root> systemctl --system daemon-reload
Este é apenas um outro aspecto a se ter em mente.
***
Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/increase-open-files-limit-in-mariadb-on-centos-7-with-systemd/