Re: Performance Engpass finden

From: Jens Rehsack <rehsack(at)liwing.de>
Date: Sun, 02 Nov 2003 00:54:32 +0000

Bernd Walter wrote:
> On Sun, Nov 02, 2003 at 12:21:14AM +0000, Jens Rehsack wrote:
>
>>Bernd Walter wrote:
>>
>>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?

Ja. Aber das macht nichts.
Das Ding ist - wie ja schon letztesmal angedeutet, ein klarer
Fall für eine C++ Implementation, und nicht mit PHP, wie bisher.

> Da ist eindeutig schon was im Argen.

Klar doch, aber erstmal steht die Funktionalität oben. Performance
kriegt man im Zweifel auch durch Blech :-)

>>>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.

Oder - ein Fehler im Profiler.

>>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.

1/3 der Gesamtzeit im Skript ist lange? Irgendwie machte ich
mir eher Sorgen, das die 2/3 Kommunikation lange sind.

0.4s - oder wie jetzt festgestellt: 1.02s - sind zwar nicht
schön, aber durchaus optimierbar. Ich machte mir ja eher
Sorgen darum, dass ich keine Kontrolle hätte, wenn's vielleicht
wirklich irgendwo zwischen irgendwelchen API's (mod_php -> Apache)
gehangen hätte.

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

Na ja, ist halt meine Workstation. Da läuft nebenbei noch
Gnome, xmms, Mozilla, xskat, div. Terminals, ...

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

:-)
Leider aufgrund der recht komplexen Initialisierung nicht
trivial möglich. Ich behalt's aber mal im Hinterkopf für
später.

> Ansonsten würde ich die üblichen Kandidaten checken.
> swapped der Rechner?

Nicht bei < 10 parallelen Anfragen.

> Ist die Platte sonst wie aktiv?

Eigendlich nicht.

> Hat der Apache ausreichend preforked childs.

???
Ich denke schon. Sind so ca. 15, sollten für die erwarteten
2-3 parellelen Anfragen reichen.

> Sind statische Seiten ebenfalls langsamm?

Nein. Also muss es am Skript liegen.

> Liefert netstat -an sehe viele Connects?

Wieder: Was sind viele? Sind so ca. 280.

> Ist dein cgi lange mit Initialisieren beschäftigt?

Leider ja. Wir arbeiten dran.

Gruß,
Jens

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:55:09 CET

search this site