Data

10 jun, 2015

Aumente o open-files-limit do MariaDB no CentOS com systemd

Publicidade

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/