On 25.02.2012 16:02, Sven Van Caekenberghe wrote:
Philippe,
On 25 Feb 2012, at 14:35, Philippe Marschall wrote:
Hi
I heighten everybody's mood I'll post some positive news.
After some optimizations in both Seaside and AJP I managed to break 8000 requests / sec with a single Pharo 1.3 image. Thanks to SystemProfiler I knew where to look.
This is with a single request handler that just returns a two byte response. It doesn't involve any rendering, sessions, continuations or whatsoever but it kicks on the full Seaside request handling machinery with a request context and everything.
I'm using WASmallRequestHandler from the Seaside-Benchmark package.
WASmallRequestHandler>> #handleFiltered: aRequestContext aRequestContext respond: [ :response | response binary; contentType: WAMimeType textHtml; nextPutAll: 'OK' asByteArray ]
Apache 2.2.21 mpm_worker mod_proxy_ajp CPU Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz SmalltalkImage current vmVersion 'Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.138]'
Attached you'll find the output of ApacheBench.
Cheers Philippe <8k.txt>
Very nice, indeed.
What would you get with your setup when you increase the work a bit from the your lower limit 2 byte response to something like this page ?
http://zn.stfx.eu/dw-bench (dynamically generated by Zn) http://caretaker.wolf359.be:8080/DW-Bench (dynamically generated by Seaside) http://stfx.eu/static.html (static reference by Apache)
Drops to about 6.5 k but throughput goes up to about 50 Mbytes/sec. That's with a statically allocated byte array, no rendering. It's still doing too much copying so there is space left to go. Cheers Philippe