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
ab -c 10 -k -n 100000 http://127.0.0.1:80/small
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /small
Document Length:        2 bytes

Concurrency Level:      10
Time taken for tests:   12.366 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    99015
Total transferred:      15755682 bytes
HTML transferred:       200000 bytes
Requests per second:    8086.54 [#/sec] (mean)
Time per request:       1.237 [ms] (mean)
Time per request:       0.124 [ms] (mean, across all concurrent requests)
Transfer rate:          1244.23 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     0    1   0.6      1      15
Waiting:        0    1   0.6      1      15
Total:          0    1   0.6      1      15

Percentage of the requests served within a certain time (ms)
  50%      1
  66%      1
  75%      1
  80%      1
  90%      2
  95%      2
  98%      3
  99%      3
 100%     15 (longest request)

Reply via email to