Re: Performance Engpass finden

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Sun, 2 Nov 2003 01:42:26 +0100

On Sun, Nov 02, 2003 at 12:21:14AM +0000, Jens Rehsack wrote:
> Bernd Walter wrote:
> >On Sat, Nov 01, 2003 at 10:23:08PM +0000, Jens Rehsack wrote:
> >
> >>Test einmal mit 2 Rechnern und einmal direkt auf dem Web-Server
> >>ausgeführt, kein Unterschied.
> >>
> >>Meine Frage ist eigendlich: Womit kann man dem Engpass auf
> >>die Schliche kommen? Wo kann man anfangen, sich zu informieren?
> >
> >
> >Schnapp dir einen tcpdump und logge die Session des Clients mit, von
> >dem du aus testest.
>
> Hätte ich eigendlich auch selbst drauf kommen können.
>
> >Damit kannst du schon mal zwischen Server und Client/Netz unter-
> >scheiden.
> >Netz mag auch lokal eine Rolle spielen.
> >
> >Weiterhin ist der Blick auf den load level wichtig - der sollte mit
> >Sicherheitsabstand unter der CPU Anzahl liegen.
>
> Tut er im allgemeinen auch. Hab' z.B. einen Test mit 32 parallelen
> Anfragen laufen, wo der Load Level bei ca. 6-10 rumdümpelt. Das
> ist für den aktuellen Fall schon ok, da diese Web-Seite normalerweise
> bestenfalls 2-3 echt parallele Anfragen bearbeiten soll.

2-3 Anfragen ist recht wenig - und da braucht aleine dein cgi schon
eine dreistellige Anzahl Milisekunden?
Da ist eindeutig schon was im Argen.

> >Wie man weitersucht hängt vom Ergebniss ab.
>
> Vom "GET /" bis "HTTP 200" sind ca. 1.2s vergangen (lo0). Auf dem
> Produktionsserver gibt es aus Sicherheitsgründen kein bpf, daher
> kann ich das nur lokal testen.

Das ist klar - hast du ja bereits gesagt.
Die Frage ist mehr, ob es retransmissions gab oder einfach eine
Pause auf Applikationsebene stattfand.

> Ok, aber da ist die Antwort: 1.2s bei ca. 0.4s im Skript selbt
> (laut Profiler). Die Ergebnisse des Profilers sehen insgesamt
> recht stimmig aus - ich denke also, der hat keinen so groben
> Fehler.

0.4s ist verdammt lange - habe ich oben ja bereits erwähnt.
Ist ja auch bereits ein drittel der Gesammtzeit.

Entweder hat die Maschine irgendwo eine Grundlast oder deine
Konfiguration ist irgendwo Faul.

Kannst ja mal mit time fetch url und time cgiprogramm ein bischen
ausprobieren wie lange das dauert und wieviel CPU dabei benötigt
wurde.

Ansonsten würde ich die üblichen Kandidaten checken.
swapped der Rechner?
Ist die Platte sonst wie aktiv?
Hat der Apache ausreichend preforked childs.
Sind statische Seiten ebenfalls langsamm?
Liefert netstat -an sehe viele Connects?
Ist dein cgi lange mit Initialisieren beschäftigt?

-- 
B.Walter                   BWCT                http://www.bwct.de
ticso(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 02 Nov 2003 - 01:43:02 CET

search this site