kleine Tuning Frage für root-Server

Domi

Member
Hallo Leute :)
Nach langem hin und her bei einem Kumpel mit seinen Emails, hatte ich dann eine Lösung gefunden. Es dreht sich um folgendes, ein bekannter von mir hat einen root-Server! Läuft auch ohne Probleme und es gab nie Ärger :)

So, ich hab ja alle Daten für die Kiste die ich haben könnte.. auch root Zugriff! Liegt daran, dass er mir vertraut und ich ab und an wenn was ist, einen Dienst neu starte wenn er nicht da ist, oder kein Internet zur Hand hat!

Zurück zum Thema.. Ich hatte folgendes Problem (klick mich) was nun behoben ist. Es lag daran, dass in der my.cnf ein Timeout eingestellt war! Grund dafür sind die zig tausend Zugriffe vom Syscp.. oder besser gesagt, von Postfix der sich als user syscp in der Datenbank anmeldet (so wie ich das sehe).

So, ich sehe nun in der Prozess-liste vom SQL Server das sich der User SysCP 34mal angemeldet hat (was wohl Postfix sein dürfte). Macht es denn nicht Sinn, das Postfix sich mit einem eigenen usernamen anmeldet an der Datenbank? Und des weiteren, kann man nicht doch gefahrlos ein Timeout von (ca. 15min) in die my.cnf einbinden? Denn es sind auch nur max. 150 Verbindungen erlaubt :D

So sieht der Teil aus, den ich erst mal auskommentiert habe, damit das Email Problem in dem anderen Thread behoben ist. Aber müssen es denn alle 3 Befehle für den Timeout sein?!
Code:
#interactive_timeout = 25
#wait_timeout = 30
#connect_timeout = 5

Ich danke schon mal für ein paar Tipps und Tricks.
Mfg. Anubis
 
Macht es denn nicht Sinn, das Postfix sich mit einem eigenen usernamen anmeldet an der Datenbank?
Klar, neuen Benutzer anlegen, Lese-Rechte auf die Mail-User Datenbank/Tabelle geben und den Nutzer in der Postfix-conf anpassen. :)
 
Joa, ich hab es dann auch gleich ganz "paranoid" gemacht, wobei ich vermute die Profis (oder so) machen das ähnlich...

Ich habe nun für jede der drei Dateien, einen extra-Benutzer angelegt, um mal zu sehen was da nun genau passiert. Und es sieht ja schon mal anders aus in der Prozess-Liste von SQL Server, wenn da nicht immer nur SysCP steht :D

Denn syscp selbst ist nur zwei mal drin mit einem "sleep" und mailuser auch. Mal schauen welcher Dienst als mailuser in der Datenbank rum wuselt :D Ich weiß nur, dass wir den TimeOut mal gesetzt hatten, weil irgend ein Dienst die Datenbank voll gesetzt hatte und es konnte keine weitere Verbindung mehr rein. Somit ging auch nichts mehr bezüglich Email. Oder nur sehr verzögert :rolleyes:

Nachtrag: Es sieht so aus als wenn SysCP selbst die ganzen Plätze belegt.. Ich hab ja ein Limit eingestellt für die Verbindungen zum SQL Server, und SysCP ist nun schon 6mal drin. Alle im "sleep" und drei davon über 3000sek! Mal im SysCP Admin gucken.. Oder kann man sagen, dass er User SysCP nach 4000sek kicken soll? Also nicht alle, aber die mit über 4000sek Time :)
 
Last edited by a moderator:
wait_timeout nennt sich die Einstellung und nimmt als Wert sekunden.
In deinem Fall also "wait_timeout 4000" in die my.cnf schreiben und MySQL neu starten.

Kann es sein dass dein PHP versucht persistente MySQL-Verbindungen aufzubauen? Das Webinterface selbst basiert ja auf PHP ohne Daemon, kann also keine so hohen Werte generieren und Cronjobs sollten definitiv binnen Sekunden, nicht Minuten fertig sein.

Ich hab uebrigens ein wait_timeout von 60 Sekunden auf einem Syscp-Rootserver und es sind keine Probleme aufgetreten - die entsprechenden Dienste scheinen korrekt die Verbindung bei der Trennung neu auf zu bauen.
 
Kann es sein dass dein PHP versucht persistente MySQL-Verbindungen aufzubauen? Das Webinterface selbst basiert ja auf PHP ohne Daemon, kann also keine so hohen Werte generieren und Cronjobs sollten definitiv binnen Sekunden, nicht Minuten fertig sein.
Also so wie es jetzt aussieht, ist das SysCP was hier in der Datenbank nen idle macht. Postfix selbst hab ich ja nun komplett getrennt, um mal zu sehen wer, wann, was, wie lange macht. Und der ist auch flott wieder raus :)

Nur SysCP und Mailuser schauen wer länger den idle Wettbewerb durch hält :D Aber ich hab den TimeOut mal auf 3600 gestellt, ich vermute mal das ist lange genug :D So hab ich auch mal die Möglichkeit über den SSH Tunnel ein wenig in der Datenbank rum zu gucken und zu schlafen :)

Was deine 60 Sekunden angeht, ich hatte es auf 30 runter gedreht und bemerkte dann das es wohl kritisch wird. Angefangen hatte der Spaß, als auf einmal 30 Umlaut-Domains auf den Server gekommen waren.. Dann wurde das System ein wenig langsamer (wieso auch immer) und irgend wann später rief mich einer an und sagte, dass seine Emails 60 - 90min Verzögerung haben. Dann schaute ich mir die User mal an, und sah das X User in der Datenbank drin waren und geschlafen haben :rolleyes:

Sehr komisches Spiel.. Und jetzt vor ein paar Tagen gab es halt nur die Info, dass Outlook gemeckert hatte.. Was ich nachvollziehen kann (wieso auch immer), denn wenn Outlook 40 Sek braucht, eine Email zu versenden und der Timeout schon bei 30 liegt, kann das nur in die Hose gehen :D
 
Naja, der Timeout greift nur bei schlafenden Verbindungen, nicht bei aktiven.
Ein sauber programmierter Mailserver sollte zwischen allen zeitlich auseinander liegenden Anfragen testen ob seine Verbindung noch lebt und sie gegebenfalls neu aufbauen.
Wozu der Mailserver jedoch SQL braucht nachdem er den initialen Login gemacht hat bleibt mir ein Raetsel...

(Aber das sind Mailserver eh fuer mich :P )
 
Back
Top