VEGAS Pro 21
Ahadesign Tutorials

mysqlfilelimit-service.jpgVor allem wenn ein neuer Server in Betrieb genommen wird, kann es schnell zu einem Error mit dem SQL-Status HY000 kommen. Oft ist das File-Limit viel zu niedrig eingestellt und es kommt zur Ausgabe von Errcode: 24 "Too many open files". Glücklicherweise lässt sich dieses Problem beheben, was hier anhand eines Servers mit Plesk und Debian 8 gezeigt wird.

Zu viele Anfragen für den MySQL-Server!

mysqlfilelimit.jpgWer auf einen neuen Server umzieht, kommt fast nie um diverse Anpassungen herum. Diverse Konfigurationen sind auf Standard-Werte gesetzt, welche oft nicht ausreichen und sogar zum Totalausfall führen können. Dann hilft nur ein Neustart, bis das Spielchen wieder von vorne los geht.

In dieser Beschreibung gehe ich von einem virtuellen Server mit Plesk 17 und dem Linux-System Debian 8 aus. Natürlich aus aktuellem Anlass, weil das folgend geschilderte Problem erst kürzlich hier auf dem Ahadesign-Server aufgetreten ist.

Schon am ersten Tag waren die gehosteten Websites mehrfach nicht mehr erreichbar. Folgende Fehlermeldung wurde ausgegeben:

ERROR: Plesk\Exception\Database: DB query failed: SQLSTATE[HY000]: General error: 23 Out of resources when opening file '/tmp/#sql_23f_0.MAI' (Errcode: 24 "Too many open files"), query was: DESCRIBE `sessions` Additionally, an exception has occurred while trying to report this error: Zend_Exception
No entry is registered for key 'translate' (Mysql.php:53)

Ganz offensichtlich also ein Datenbank-Problem. Es konnten nicht genügend Dateien bzw. Datenbank-Aufrufe verarbeitet werden. Eine Katastrophe, schließlich will man nicht ständig den Server überwachen und neu starten.

Leider gibt es keine allgemeine Lösung für alle Server und Systeme. Selbst beim gleichen Linux-Derivat können die Unterschiede je nach Versionsnummer sehr groß sein. Die beschriebene Lösung gilt also nur für das bereits genannte System.

Als Erstes wird also Putty oder ein ähnliches Tool für den Shell-Zugriff als Root auf den Server gestartet.

mysqlfilelimit-putty.jpg

Nachdem die Verbindung steht, wird das Verzeichnis mit cd /etc/security/ gewechselt und dort die Datei limits.conf mit folgendem Inhalt befüllt:

mysql soft nofile 65535
mysql hard nofile 65535

Diese Werte stellen hier bereits das Maximum dar. Man könnte also auch 100000 eintragen. Am Ende wird der maximale Wert dennoch nicht überschritten. Aus Sicherheitsgründen könnte man eher weniger zuweisen.

Im Anschluss wird der Server mit /etc/init.d/apache2 restart neu gestartet.

Dann geht es nach /etc/systemd/system/ wo mit mkdir -p mysql.service.d ein neuer Ordner erzeugt wird. Dann wird in dem neuen Ordner mit touch limits.conf eine neue Datei erzeugt, welche mit folgendem Inhalt befüllt wird:

[Service]
LimitNOFILE=infinity

Schließlich werden noch folgende Befehle ausgeführt:

systemctl daemon-reload
/etc/init.d/mysql restart

Jetzt können die Limits mit folgendem Befehl noch überprüft werden:

cat /proc/$(cat /var/run/mysqld/mysqld.pid)/limits

Damit sollte alles wie gewünscht funktionieren. Diverse Informationen bezüglich Limits werden angezeigt. Darunter auch max open files, jetzt mit 65536 und nicht wie vorher nur 1024.

Speichern
Cookies Einstellungen
Wir verwenden Cookies, um Ihnen das beste Erlebnis auf unserer Webseite zu ermöglichen. Wenn Sie die Verwendung von Cookies ablehnen, funktioniert diese Website möglicherweise nicht wie erwartet.
Alle akzeptieren
Alle ablehnen
Essential
Für grundlegende Funktionalität der Website notwendig
Website
Akzeptieren
Marketing
Eine Reihe von Techniken, die die Handelsstrategie und insbesondere die Marktstudie zum Gegenstand haben.
Diverse
Akzeptieren
Ablehnen
Functional
Tools, die Ihnen beim Navigieren auf der Website mehr Funktionen bieten, dies kann soziales Teilen einschließen.
Osano
Akzeptieren
Ablehnen
Analytics
Werkzeuge zur Analyse der Daten, um die Wirksamkeit einer Webseite zu messen und zu verstehen, wie sie funktioniert.
Google Analytics
Akzeptieren
Ablehnen