[Allegro] acon/avanti : Performance unter Linux

Bernhard Eversberg ev at biblio.tu-bs.de
Mi Feb 2 08:52:04 CET 2011


Am 01.02.2011 22:37, schrieb Thomas Berger:
>
> Zunaechst eine Korrektur: ein listen() koennte einen Timeout-Parameter
> bekommen (nicht das accept, da war ich vorhin unpraezise), avanti arbeitet
> aber ohne listen()...
>
Für das hier in Rede stehende Problem ist dies aber wohl nebensächlich.

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

>...
> 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.
Wir haben das geändert. Hier bemerken wir keine Veränderung gegenüber
vorher, vermutlich weil die 100 normalerweise selten erreicht wird und
daher keinen Ärger gemacht hat. Auf Linux wird aber augenscheinlich die
100 durchaus schon mal erreicht. Wenn's nichts bringt, können wir mal
auf 1000 raufsetzen oder diesen Zähler als von außen zugängliche
Stellschraube einrichten.

   Win- und Linux-avanti sind erneuert.

Es wäre nun aber eine reizvolle und überschaubare Aufgabe, ein neues
avanti zu schreiben. Das müßte nicht in C, es könnte durchaus in Java
oder Perl geschehen, weil ja avanti selbst mit der Datenbank nicht
direkt etwas zu tun hat, sondern dafür acon bemüht, an welchem man
nichts ändern müßte. Das ist mit ein Grund, warum wir avanti als
ersten Quellcode freigegeben haben. (Das jetzige avanti hat seinerzeit
Kollege Butkus, noch ohne viel allegro-Kenntnis, in sehr kurzer Zeit
neu aus dem Boden gestampft. Das ältere Modell von Höppner krankte an
seiner Herkunft aus einem ganz anderen Ansatz von Eversberg, der nicht
so richtig überwunden werden konnte. Wenn ich das richtig erinnere.)
Der Worte sind genug gewechselt ...

B.E.



Mehr Informationen über die Mailingliste Allegro