Limit für open files für MySQL auf Ubuntu 16.04 mit systemd neu setzen

Geschrieben von kelly am Mi., 19.04.2017 - 17:59 Uhr

Um die Fehlermeldung

Out of resources when opening file './database/table.MYD' (Errcode: 24 - Too many open files)

auf Ubuntu 16.04 zu beheben, müssen die Limits erhöht und Änderungen an der systemd-Konfiguration vorgenommen werden.

1. Limits erhöhen

vi /etc/security/limits.d/99-openfiles.conf
#<domain>      <type>  <item>         <value>
mysql          soft    nofile         8192
mysql          hard    nofile         8192

Wenn die Limits für alle user und root neu gesetzt werden sollen, können auch diese Einstellungen verwendet werden:

#<domain>      <type>  <item>         <value>
*              soft    nofile         8192
*              hard    nofile         8192
root           soft    nofile         8192
root           hard    nofile         8192

2. Anpassen der systemd-Konfiguration

Auf Ubuntu 16.04 werden die Dienste mit systemd gestartet. Daher müssen auch hier noch Anpassungen vorgenommen werden:

systemctl edit mysql
[Service]
LimitNOFILE=8192

(Editor verlassen mit :x)

systemctl daemon-reload
service mysql restart

3. Kontrollieren der MySQL-Einstellungen

Standardmäßig ist die MySQL-Variable open_files_limit auf 5000 gesetzt. Wenn der Wert erhöht werden muss:

vi /etc/mysql/mysql.conf.d/xx-openfiles.cnf

[mysqld]
open_files_limit        = 20000

Alternativ kann natürlich auch diese Variable in der /etc/mysql/my.cnf im Abschnitt [mysqld] ergänzt werden.

Systeme
Server