PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Webserver unzuverlässig



Tobias_L
19.04.03, 16:43
Hallo!

Ich habe ein kleines Problem mit der Erreichbarkeit meines Webservers.
Immer wieder kommen in der letzten Zeit häufig "Connection Lifetime Expired" oder "Timeouts" zu Stande.

Die Eckdaten:
Athlon 800, 256 MB Ram, Suse 7.1, PHP 4.3.1 etc.

Wenn ich nun top eingebe, bekomme ich
96 processes: 92 sleeping, 3 running, 1 zombie, 0 stopped
CPU states: 25.6% user, 11.6% system, 0.0% nice, 62.7% idle
Mem: 247628K av, 228160K used, 19468K free, 0K shrd, 4656K buff
Swap: 265064K av, 264952K used, 112K free 55448K cached
(wobei die Anzahl an Processen und der Messwert der CPU states meistens doppelt so hoch ist).
Ferner sind viele httpd- und mysqld-Prozesse nun aufgelistet.
Zudem bekomme ich immer ab und zu einen [defunct] bei den httpd- und mysqld-Prozessen.

Ich muss sagen, dass ich mich mit Server-Leistung noch nicht sonderlich beschäftigt habe. Für mich als Laie sieht es nur so aus, dass - auf Grund von zuvielen Zugriffen - manchmal Anfragen gar nicht oder nur verspätet bearbeitet werden können.
Ist diese Annahme richtig?
Wenn ja, gibt es ein Allheilmittel außer die bestehenden Objekte versuchen zu optimieren? *lol*
Wenn ja, wo sollte man als erstes nach Optimierungsmöglichkeiten suchen? MySQL?

Vielen Dank im Vorraus!

cu
Tobias

RichieX
20.04.03, 09:00
Hi Tobias_L,

Die Rechnerausstattung sollte auch für einen gut besuchten Apache erst einmal ausreichen, wenn Du nicht allzuviel serverseitug-dynamische Inhalte anbietest.

Was hast Du denn für eine Anbindung?
Welchen Kernel nutzt Du mit SuSE 7.1?

RichieX

Tobias_L
21.04.03, 11:39
Hallo!

Vielen Dank für die Antwort!

Das ist jetzt bestimmt eine dumme Frage, aber wie lautet der Befehl, um anzeigen zu lassen, welchen Kernel man hat?


cu
Tobias

joey.brunner
21.04.03, 11:44
hi,

es gibt keine dummen fragen, ....

uname -a

ist aber keien dumme antwort ;)

joey

Berufspenner
21.04.03, 11:45
Hi@all
Das ist jetzt bestimmt eine dumme Frage, aber wie lautet der Befehl, um anzeigen zu lassen, welchen Kernel man hat? Das wird beim Booten Angezeigt und der Kernel müsste in /boot doch auch einen ortentlichen Name haben.

Cu
André

Tobias_L
21.04.03, 13:53
Hallo!

Danke schön :)

Der Kernel ist Version 2.4.14
So sieht übrigens aktuell "top" aus:


2:33pm up 137 days, 22:35, 1 user, load average: 1.42, 2.63, 5.32
91 processes: 87 sleeping, 3 running, 1 zombie, 0 stopped
CPU states: 20.1% user, 6.3% system, 0.0% nice, 73.5% idle
Mem: 247628K av, 238192K used, 9436K free, 0K shrd, 5156K buff
Swap: 265064K av, 265056K used, 8K free 58080K cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
31400 wwwrun 18 0 22564 7844 6212 S 7.2 3.1 1:45 httpd
13357 wwwrun 19 0 22700 8064 6296 S 2.1 3.2 0:01 httpd
7984 wwwrun 9 0 22644 7948 6308 R 1.7 3.2 0:10 httpd
15097 root 14 0 964 964 740 R 1.3 0.3 0:01 top
11687 wwwrun 13 0 22688 8032 6312 S 0.7 3.2 0:04 httpd
15353 mysql 19 0 22832 6060 1600 S 0.7 2.4 0:00 mysqld
32243 root 11 0 780 704 628 S 0.5 0.2 6:41 pipelog.pl
13390 wwwrun 11 0 22164 7460 6436 S 0.3 3.0 0:02 httpd
14967 wwwrun 11 0 22432 7748 6300 S 0.3 3.1 0:00 httpd
15352 mysql 12 0 22832 6060 1600 S 0.3 2.4 0:00 mysqld
8780 wwwrun 10 0 22584 7908 6336 S 0.1 3.1 0:11 httpd
11588 wwwrun 10 0 22472 7808 6308 S 0.1 3.1 0:05 httpd
11738 wwwrun 9 0 22592 7952 6336 S 0.1 3.2 0:04 httpd
1 root 8 0 80 64 48 S 0.0 0.0 6:08 init
2 root 9 0 0 0 0 SW 0.0 0.0 29:30 keventd
3 root 19 19 0 0 0 SWN 0.0 0.0 1:32 ksoftirqd_CPU0
4 root 9 0 0 0 0 SW 0.0 0.0 136:10 kswapd


Was mich wundert, ist die Tatsache, dass ein Nameserver lief, obwohl wir keinen Nameserver auf diesen Server betreiben. Ich habe den Prozess gekillt und schon scheint der Server ein wenig besser zu laufen.

Aber in unregelmäßigen Abständen stimmt die Performance noch immer nicht. Es kommt zu extremen Wartezeiten und Timeouts *grummel*

Weiß jemand Rat?

cu
Tobias

Edit von Jorge: Habe den TOP Output etwas schöner gestalltet....

Dr. Doo
21.04.03, 18:14
Hola,

Es kommt halt wirklich darauf an, wie viele Besucher auf den Webserver zugreifen.
Wenn es eine gut besuchte Website ist, die zudem noch dynamische Inhalte bereit-
stellt (wovon ich mal ausgehen wenn php und MySQL installiert sind), dann sind
solche auslastungen eigentlich kein Grund zur panik.

Wenn es aber ein Rechner mit zwei zugriffen pro Tag ist, dann wuerde ich mir sorgen machen ;)

Eine ueberdurchschnittliche Auslastung des Apache kann z.B. auch dann auftreten, wenn die PHP-Scripte unsauber programmiert wurden sind. D.h. wenn viele schleifen
(unnoetige) verwendet werden oder der MySQL Server zu haeufig gequeried wird.

Beachte auch, dass es "Stosszeiten" gibt. Sonntagabends wird die Auslastung wohl hoeher sein als Mittwochnacht....

Wie intensiv wird denn auf dynamische und Datenbankbezogenen Inhalte zurueck-
gegriffen? Wie viele Besucher hat die Seite durchschnittlich?

Tobias_L
21.04.03, 21:34
Hallo!

Nun ja... Prizipiell laufen alle Projekte mit PHP & MySQL.
Ich würde schätzen, dass bei Stoßzeiten insgesammt 250 Leute parallel auf dem Server (also allen Seiten) sind, Tendenz steigend.

Nebenbei: Bei solchen "Ausfällen" lässt sich der Server immer noch wunderbar anpingen, SSH, FTP etc. versucht man allerdings vergebens. Kann eine Überlastung von MySQL so etwas bewirken?

cu
Tobias

Bauchi
21.04.03, 21:39
mhh ist das so ein dedicated server mit confixx drauf zum verwalten ??

pipelog.pl <--- das läuft da als prozess... sieht harmlos aus .. isses aber nich :-)
confixx erstellt automatisch so statistik kram und so .. und der reisst manchmal gut cpu mit ;)

just my 2 &cent;

Dr. Doo
21.04.03, 22:51
Im Prinzip ist es schon möglich, dass ein MySQL Server nebst PHP Scripten eine
solche Systemauslastung erreichen kann.
Gerade wenn viele Anfragen an den MySQL Server gehen wird z.B. neben der CPU auch die Festplatte gut beansprucht. Je nachdem kann die Platte dann zum Flaschenhals im System werden.

Was mir aber hier wahrscheinlicher ist, ist die Tatsache, dass relativ wenig RAM im System ist. Wenn 250 Leute Parallel darauf Zugreifen wird es auf jeden Fall eng.
Das sieht man auch gut an deinen geposteten TOP-Ausgaben...
Vieleicht einfach nochmal 512 MB Ram in die Kiste bauen.

Ansonsten ueberpruef mal das, was Bauchi sagte, vieleicht liegt das Problem ja wirklich da....

Gruesse,
Alexander G.

Tobias_L
23.04.03, 09:19
Hallo!

Vielen, vielen Dank!
Confixx läuft mit und ich werde die Statistik-Funktion mal deaktivieren.
(Generell wollen wir das mal runterschmeißen)

Der Flaschenhals war nun übrigens die Festplatte!
Wir hatten ein kleines Download-Archiv (400 Dateien mit durchschnittlich 100 kb). Durch die Steigerung der Besucherzahlen wurden speziell auch gleichzeitig viele Downloads getätigt, so dass wohl die Festplatte leicht ein wenig überlastet war und wohl somit den ganzen Rechner auslastete.
Wir haben nun erst einmal diesen Bereich komplett deaktiviert und zudem die MySQL-Abfragen optimiert. Nun läuft der Server wieder ordentlich schnell.
Es ist mir ehrlich gesagt ein wenig peinlich, dass ich das nicht zuvor gemerkt habe und es wird endlich Zeit mal ein paar verbesserte Statistiken aufzustellen.

Noch einmal vielen Dank!

cu
Tobias

theWireless
23.04.03, 13:44
nah, muss dir doch nicht peinlich sein. Ist gut zu wissen, dass anderen (wie ich), die noch nicht so lange mit Linux arbeiten, nicht der selbe "Fehler" unterläuft. Und selbst wenn ist in diesem Topic eine gute Hilfe gefunden ;)