henso.com
Home
Archive
Search

rss feed for this page

DELI
HLM

LNGR
EURN
OON
CHLM
POOL
ELPH
RIST
SOFA
SENS
P3K
FM4
SCRP
MAL
RNS
GDNY
ELEG
OSNS
SLSH

Mozilla, baby!

antville.org
 Dienstag, 30. Oktober 2001 

Mit dem neuen MinML macht Apache XML-RPC bis über 1300 genuine Requests pro Sekunde auf meinem 500 Mhz P3-Laptop. (Kernel 2.4.4, Blackdown 1.3.1) We're getting there.

Pieeep! Doch nicht: In der Zeitnehmung war ein Bug. In Wirklichkeit sind es so um die 550. Ist aber auch noch ganz ok.

Never trust your own code ;-) Es werden 16 threads gestartet, die Laufzeit, anhand der die reqs/sec berechnet werden ist jedoch nur die Laufzeit des zuletzt fertig gewordenen threads. Das lieferte ein relativ richtiges Ergebnis, solange die XML-RPC calls viel länger dauerten als das Starten der Threads. Bei meiner letzten Messung vor einem Jahr oder so kam ich auf wahrscheinlich trotz bug relativ richtige 240 reqs/sec. Damals mit Dual P2 233 Mhz (fritz), einem früheren Kernel, früherer Java-Version und langsamerem MinML. Nur am XML-RPC-Code hat sich seit damals praktisch nichts geändert ;-) Mittlerweile ist die ganze XML-RPC-Chain im Vergleich zum Starten der threads aber viel schneller geworden, so dass bei 16 threads mit je 100 calls die ersten threads schon fertig sind, bevor die letzten gestartet sind, weshalb der Wert eben so nach oben gerutscht ist. Realistische Werte bekommt man ab ca. 1000 calls pro thread. Und natürlich indem man den timer-bug fixt.

Hier sind die richtigen Werte:
Apache Bench (ab) GET (kein XML-RPC, nur Webserver),
ohne HTTP keepalive*): 1200 req/sec
Apache Bench (ab) XML-RPC-Posts Math.abs(),
mit HTTP keepalive: 1050 req/sec
Apache Bench (ab) XML-RPC-Posts Math.abs(),
ohne HTTP keepalive: 700 req/sec
XML-RPC-Client mit Ergebnis-Check Math.abs(),
mit HTTP keepalive: 590 req/sec

*) HTTP keepalive wird nur für POST unterstützt.


 chris , 30. Oktober 2001 gegen 16:33 

Oida Fux! Leerer Request? Über Netz oder in-process?

 hns , 30. Oktober 2001 gegen 17:00 

Von Zufallszahlen Math.abs() zurückliefern (und schauen ob's stimmt ;-). Übers Netzwerk, aber nicht über Karte und Kabel (sprich localhost).

Fux, oida!

 chris , 30. Oktober 2001 gegen 18:13 

Das is ein Wahnsinn! 1300 mal Port auf, senden, empfangen? *ungläubig/staunend/taumelnd*

 earl , 30. Oktober 2001 gegen 21:28 

hmmm ;) wenn du die mess-methodik ein bissl genauer erlaeutern koenntest ... ich wuerd auch gern ein paar impls' benchmarken ;)

obwohl 1300 req/sec ja schneller als apache htppd selbst ist. da haben diverse cgi-based implementationen ja schon mal prinzipiell keine chance mehr ;)

 hns , 30. Oktober 2001 gegen 21:37 

Methodik: Ich lasse diese Klasse laufen. Kann man relativ leicht anpassen. So wie sie ist lässt sie 16 Clients jeweils 100 Requests an method math.abs schicken (die ist im Helma XML-RPC standardmässig als Demo-Handler installiert).

 earl , 31. Oktober 2001 gegen 9:45 

gracias ;) und - ned schlecht ;)

Log in to add your comment!

Not logged in. Click here to log in.

 comments