Hi Jan, 

> Ok. Wegen meiner vorherigen Vermutung noch eine Frage: Ist es so, dass
> der Webservice, den Du ansprichst, ebenfalls auf Deinem localhost
> läuft? 

Sorry, hatte ich wahrscheinlich ein wenig umständlich ausgedrückt. Ich
spreche aber tatsächlich andere Dienste draussen an. Nichts auf meinem
eigenen Host. 

> So hatte ich Deine erste Schilderung vestanden. Dass Du mittels eines
> net/http-objektes ebenfalls Deine eigenen mongrels ansprichst. Sicher,
> dass macht auf den ersten Blick keinen Sinn, aber - das wissen wir
> alle - manchmal geht man seltsame Wege. 

Ja :o) .... in dem Fall aber wirklich nicht. 

> Dann hätte es nämlich so sein können, dass Deine requests aus dem
> net/http-Objekt Deine eigenen mongrels blockieren.

Dann wäre das aber ziemlich durchsichtig gewesen ;o) .... 

> Was passiert denn im Log? Wird da wirklich nur einer der acht mongrels
> von dem net/http-Kram blockiert? 

Ja, genau das ist ja auch ok. Natürlich soll dieser eine Request den ich
mit meinem Browser an den Host absetze, dort nur genau einen der
Mongrels beanspruchen. Das tut er auch. Ein mongrel_rails läuft dort,
wenn ich den Request abfeuere, und dies auch solange, bis die
eigentliche Action, die die WebServices anspricht, returniert. 

> Wenn das so ist kann der Fehler ja eigentlich nur im Load-Balancing
> liegen, ansonsten müssten die anderen mongrels requests beantworten.

Genau das habe ich auch gedacht. Ist aber (zumindest) scheinbar nicht
der Fall. Deswegen habe ich ja mal mit dem Apache Benchmarker getestet
und eben 1000 Requests mit 8 gleichzeitigen connections auf die
Frontpage des Projektes abgesetzt. 

Wenn ich das tue, sehe ich in der Prozessliste des Servers auch wie
erwartet 8 Instanzen von mongrel_rails. Und die Requests werden auch
einwandfrei und parallel abgearbeitet. 

Lustig ist jetzt folgendes. Ich starte einen Request auf meine "böse
Action". Diese läuft jetzt ca. 90 Sekunden. In diesen 90 Sekunden starte
ich den "ab" nochmal mit den gleichen Parametern. Ergebnis: In der
Prozessliste des Servers ist nur ein mongrel_rails zu sehen - scheinbar
der, der meine böse Action bearbeitet - und "ab" gibt nach kurzem mit
einem Timeout auf. 

Noch lustiger ist folgendes. Starte ich kurz vor Ablauf der 90 Sekunden
den "ab", so bekommt der vom Server keine Responses. Exakt ab dem
Augenblick, in dem meine "böse Action" zurückkommt, rennen auch bei "ab"
die Responses rein, und in der Prozessliste des Servers starten die
restlichen 7 mongrel_rails Instanzen. 

Irgendwie scheint es also so zu sein, dass diese "böse Action" dafür
sorgt, dass kein weiterer mongrel_rails starten kann. An der Balancer
Config scheint es also nicht zu liegen. 

Nettes Ding oder :o) ....

Grüße
Jan Roesner
jan [ a t ] roesner [ d o t ] it




_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an