ticar
Goto Top

Debian Etch Server steht fast

Load Avarage 24 und höher face-sad

Hi,

ich betreibe privat ein root Server bei meinem Provider mit einem Debian Etch System und den üblichen Verdächtigen wie APache2, mySQL und PHP 4 & 5 drauf und alle paar Tage hat der Server das Problem, dass er einfach extrem langsam wird und die CPU Auslastung auf 100% hoch schießt. Load avarage liegt dann bei ca. 24 was viel zu hoch ist. Es laufen ca. 20 Webs darauf, aber alles nix wildes.

Wenn ich mir mit htop in dem Moment die Prozesse anschaue, dann liegen meist 1-2 mysqld Prozesse bei 100%. Auch jetzt aktuell nachdem ich den Apache2 beendet habe, gewartet habe bis sich alles beruhigt und wieder starte, liegen die CPU% bei mehreren mysqld Prozessen bei 50% und höher. Teilweise sogar 100%. Irgendwie erscheint mir da was komisch. Ab und zu hat auch der php5 Prozess 100%, aber das eher selten.

Gibt es irgendwie die Möglichkeiten einzelne DBs abzuschalten um mal zu schauen welche DBs dafür verantwortlich sind, oder einzelne Webs zu beenden? Oder wie könnte ich der hohen Auslastung entgegen wirken, denn von Server würde ich sagen, sollte der das alles schaffen. 2 Proessoren (Core2Duo), 1GB RAM die rel wenig ausgelastet sind.

Wäre super, wenn jemand ein paar Tipps dazu geben könnte, da ich schon des öfteren versucht habe da was zu machen *Seufz*

MfG,
Lars

Content-ID: 125373

Url: https://administrator.de/contentid/125373

Ausgedruckt am: 05.11.2024 um 06:11 Uhr

16568
16568 20.09.2009 um 21:11:42 Uhr
Goto Top
Wow, 1 GB RAM ist für meine Begriffe definitiv NICHT ausreichend...
(wobei, kommt ja immer auf die DB-Queries und Zugriffe an...)

Wie wäre es denn einfach mal mit Logfile-Analyse...?


Lonesome Walker
kaiand1
kaiand1 20.09.2009 um 21:39:40 Uhr
Goto Top
"Gibt es irgendwie die Möglichkeiten einzelne DBs abzuschalten um mal zu schauen welche DBs dafür verantwortlich sind, "
Aber sicher
Wenn du zb PHPMYADMIN nutzt gibt es dort nen Reiter wo du die einzelnde Usern sperren kannst
UND
auch die derzeit aktivien Userzustände ansehen.
Ob der User xyz grad nen Query macht ect..
LordGurke
LordGurke 20.09.2009 um 22:16:22 Uhr
Goto Top
Falls du das Binary-Logging des MySQL-Servers (ist bei Debian glaube ich per Default an) z.B. über PHPMyAdmin anguckst, kannst du auch die Queries sehen, die ausgeführt wurden.
Allerdings hat dieses Logging einen extremen Nachteil: Bei sehr vielen gleichzeitigen Abfragen bremst es den Server gerne mal aus. Deshalb sollte man es eigentlich auch nur dann einschalten, wenn man es wirklich braucht.
In der my.cf von MySQL wirst du fündig.

Könnte aber auch eine Datenbank mit Volltext-Indexen sein - werden da viele Inserts oder Updates gemacht, muss natürlich auch der Index aktualisiert werden, was den MySQL-Server bei großen Datenbanken mit vielen indizierten Feldern durchaus stressen kann.
TiCar
TiCar 22.09.2009 um 20:51:43 Uhr
Goto Top
Hi,

und Danke für die Antworten. Binary Logging ist aus, den Fehler konnte ich in früherer Zeit schon eliminieren. Slow Queries habe ich mal eingeschaltet, aber das bringt nicht all zu viel an Ergebnissen und ist wieder aus.
In der my.cnf konnte ich noch einige optimieren wie skip-innodb und ein paar Werte erhöhen. Inzwischen nicht mehr ganz so CPU lastig das ganze, nur der Speicherverbrauch eines einzelnen Prozesses liegt immer noch bei VIRT = 370M und RES = 200M