[Allegro] acon/avanti : Performance unter Linux

Thomas Berger ThB at Gymel.com
Mi Feb 2 09:36:31 CET 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Eversberg,

>> Jedenfalls, wenn eine Verbindung zum avanti-Server initiiert wird,
>> werden drei Pipes eroeffnet, avanti forkt() und ... startet sich dann
>> extern (!) neu als "avanti -slave", was dann nichts weiteres tut als
>> einige Pipes zu eroeffnen und dazu dann jeweils eine Shell (!) und
>> indirekt durch diese je ein zugehoeriges acon aufzustarten.
>>
> Nein, es wird immer nur 1 Pipe eröffnet (und eine shell), im Moment des
> Eintreffens eines Jobs, der aus anderen Gründen problematische
> prefork-Modus ist ja inaktiviert.

Sie sollten nicht den Kommentaren in den Sourcen glauben, sondern
den Code lesen:

PREFORK wird auf 10 gedeckelt, nicht auf 1

Es wird avanti -slave gestartet (mit drei Pipes) wo angeblich acon
gestartet wird.


>> ...
>> Und je nachdem, wie schnell die 100 Leerversuche nach dem Uebertragen
>> des Jobs durchlaufen sind (und ich vermute: sehr schnell), muss auch
>> erst wieder eine Sekunde vergehen, bevor das Ergebnis von acon
>> eingesammelt und weitergereicht wird.
>>
> In der vorigen Mitteilung hatte Berger schon etwas anderes bemerkt:
> Nach den ersten 100 Leerversuchen wurde fälschlich der Zähler nicht
> wieder auf 0 gesetzt, sondern auf 100 (!). Das könnte die Ursache sein.

Wozu diese Spekulationen, wo ich Ihnen doch schon bewiesen habe,
wo das Problem ist? Es gibt einfach (ausser in der Start-Situation, wenn
der Prozess sich den Socket nicht krallen kann, auf dem er Verbindungen
annehmen wird) keine Rechtfertigung dafuer, dass sich ein Server-Prozess
einfach schlafen legt, und dann direkt fuer eine Sekunde schon gar nicht.

Die Schraube, an der sie da gerade drehen, faehrt den Server leer auf
maximalen CPU-Verbrauch hoch, in der Hoffnung dass es das System in der
Zwischenzeit schafft, die Dinge zu erledigen, die gerade anstehen (Prozesse
starten, Daten entgegennehmen). Ist es trotz der Obstruktion durch den
Server-Prozess schnell genug, werden alle belohnt, indem sich der Server
ausnahmsweise nicht schlafen legt sondern sofort mit der Arbeit beginnt.

Der derzeitige Avanti ist ein ganz typisches Stueck Behoerdensoftware:

In gewissen Zeitabstaenden besucht der Pfoertner seine Loge um nachzusehen,
ob jemand an der Tuer geklingelt hat. Wenn ja, wird ein Empfangskommitee
zusammengetrommelt und in Aufstellung gebracht, dann langsam die Tuer
geoeffnet. Dann wird rasend schnell mehrfach nachgesehen, ob der
Besucher schon durch die Tuer gekommen ist und das Empfangskommitee
bereitsteht, wenn nicht, wird erst mal Kaffee trinken gegangen...

viele Gruesse
Thomas Berger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iJwEAQECAAYFAk1JF48ACgkQYhMlmJ6W47N9PQP8DdBR7hw9eCBiaMertlnk3yuw
r4GuhoQY1D+lI5sGvuKdFTQfFVkkJ31Bf2z7fFT6cy6FZtLHrZxu061MZpy7Aiw7
JhnxCi7uZj9ovZIqBcL/Ib0rsOkLIfXsa1quh3zye00lul7v3vT4u5LQ4tdsprdG
7GCmXBXOQGIS3w9vuCk=
=EyrG
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro