[Allegro] acon/avanti : Performance unter Linux

Bernhard Eversberg ev at biblio.tu-bs.de
Mi Feb 2 10:45:29 CET 2011


Am 02.02.2011 10:09, schrieb Thomas Berger:
>
> D.h. Sie haben den avanti-Quellcode veroeffentlicht, weil er
> ueberfluessig ist?
>
Ächz.

> Nachdem ich gestern eine Stunde in den knapp 4000 Sourcezeilen von
> avanti gewuehlt habe, teile ich Ihre Einschaetzung: Es ist eine
> Standard-Fingeruebung nach Lehrbuch, die dennoch unrettbar vergurkt
> ist und daher eine Neukonzeption erforderlich macht. ...
>
> Fuer mich heisst das allerdings, dass man den bestehenden avanti
> trotz all seiner Maengel gruendlich flicken und am Leben erhalten
> sollte, ...
>
Irgendwie passt das nicht recht zusammen, oder Sie haben mit "unrettbar"
wieder mal Ihr Stilmittel der grotesken Übertreibung bemüht. (Was
den nicht ganz so tief in der Materie steckenden Leser unrettbar in
Verwirrung stürzt, und das können auch Sie nicht wollen. Wäre das hier
eine Entwicklerliste, würde ich nix sagen.)

Mit "prefork" hatten Sie aber recht, es ist momentan auf 10 gesetzt
(über die Konstante MAXFORK). Ändere ich das auf 1, bemerke ich aber
hier keine Änderung des Reaktionsverhaltens.
Aber wer rafft sich auf und versucht sich dran, eine geradere Gurke
zu machen?

> Prioritaet sollte m.E. haben, dass acon (zu gegebenem Aufrufpfad und
> Datenbank etc.) in der Lage ist, mehrere Jobs nacheinander zu
> verarbeiten: Dann koennte avanti einen Pool von acons am Leben
> erhalten und jeweils die benoetigten einer spezifischen
> Client-Verbindung zuteilen: Das waere effizient.
Sicher, haben wir auch vor langer Zeit alles mal durchdacht. Scheiterte
dann aber doch an Komplexität, und es wurde acon als separates und
relativ schlankes Jobverarbeitungsprogramm geschaffen (zunächst
avanti-cl genannt). Und avanti selbst hat dann ein anderer neu
geschrieben, wobei auch das Ziel war, daß avanti unberührt bleibt von
eventuellem Absturz oder Hängenbleiben eines Jobs. Genau deshalb wird
avanti mit -slave dann neu gestartet, übernimmt die Verbindung zum
Auftraggeber, nabelt sich ab vom avanti-Server und startet acon, dem
es den Job übergibt usw.

B.E.



Mehr Informationen über die Mailingliste Allegro