Kuba,

Thanks for taking the time to test this. I've found a bug in the Linux version that hinders performance. I think you'll see things improve a great deal with this next minor version.

Thanks,
-tim

On 3/17/2010 8:20 PM, Kuba Kucharski wrote:
This is probably obvious but I decided to try this myself:

Should one run web2py with Pound on multi-core server?

probably yes if you deal with concurrent connections..


This is my config:

2.6.31-19-generic-pae
Intel(R) Xeon(R) CPU E5410  @ 2.33GHz
Ubuntu 64bit
one processor with 4 cores

disk is serial ata, with performance around this:

#/sbin/hdparm -t /dev/sda

/dev/sda:
Timing buffered disk reads:  268 MB in  3.01 seconds =  88.96 MB/sec

This is slow. This is one SATA disk.

I used mysql-5.1 for "writing" tests. I run it on the same machine. Also POUND.

"ab" command runs on my 32bit ubuntu laptop with 2.5 Ghz Core2Duo.
Server and laptop are connected via Gigabit ethernet directly.


I did 12 concurrent connections with 2000 calls, and then 1 connection
with 2000 calls test for every case. Application was compiled. I set
migrate=False.


READING:
========


ROCKET :
----------------
r...@kubatron:/home/kuba/httperf-0.9.0/src# ab -n 2000 -c 12
http://192.168.0.1:8000/vae/default/benchmark2

Concurrency Level:      12
Time taken for tests:   15.441 seconds
Complete requests:      2000
Failed requests:        0
Write errors:           0
Total transferred:      852000 bytes
HTML transferred:       236000 bytes
Requests per second:    129.52 [#/sec] (mean)
Time per request:       92.647 [ms] (mean)
Time per request:       7.721 [ms] (mean, across all concurrent requests)
Transfer rate:          53.88 [Kbytes/sec] received


#for concurrency level: 1

#Requests per second:    157.27 [#/sec] (mean)
#Time per request:       6.359 [ms] (mean)
#Time per request:       6.359 [ms] (mean, across all concurrent requests)
#Transfer rate:          65.43 [Kbytes/sec] received



POUND + 4 x ROCKET :
--------------------



r...@kubatron:/home/kuba/httperf-0.9.0/src# ab -n 2000 -c 12
http://192.168.0.1:8080/vae/default/benchmark2

Concurrency Level:      12
Time taken for tests:   6.828 seconds
Complete requests:      2000
Failed requests:        0
Write errors:           0
Total transferred:      852000 bytes
HTML transferred:       236000 bytes
Requests per second:    292.91 [#/sec] (mean)
Time per request:       40.968 [ms] (mean)
Time per request:       3.414 [ms] (mean, across all concurrent requests)
Transfer rate:          121.86 [Kbytes/sec] received

This is faster!! More than twice!

#for concurrency level: 1

#Requests per second:    129.28 [#/sec] (mean)
#Time per request:       7.735 [ms] (mean)
#Time per request:       7.735 [ms] (mean, across all concurrent requests)
#Transfer rate:          53.78 [Kbytes/sec] received



WRITING(mysql innodb)->  to see writing bottleneck
=================================================


ROCKET :


r...@kubatron:/home/kuba/httperf-0.9.0/src# ab -n 2000 -c 12
http://192.168.0.1:8000/vae/default/benchmark


Concurrency Level:      12
Time taken for tests:   23.466 seconds
Complete requests:      2000
Failed requests:        0
Write errors:           0
Total transferred:      858429 bytes
HTML transferred:       242121 bytes
Requests per second:    85.23 [#/sec] (mean)
Time per request:       140.798 [ms] (mean)
Time per request:       11.733 [ms] (mean, across all concurrent requests)
Transfer rate:          35.72 [Kbytes/sec] received

#for concurrency level: 1

#Requests per second:    15.69 [#/sec] (mean)
#Time per request:       63.735 [ms] (mean)
#Time per request:       63.735 [ms] (mean, across all concurrent requests)
#Transfer rate:          6.57 [Kbytes/sec] received



POUND + 4 x ROCKET :
--------------------

r...@kubatron:/home/kuba/httperf-0.9.0/src# ab -n 2000 -c 12
http://192.168.0.1:8080/vae/default/benchmark

Concurrency Level:      12
Time taken for tests:   17.797 seconds
Complete requests:      2000
Failed requests:        0
Write errors:           0
Total transferred:      858308 bytes
HTML transferred:       242000 bytes
Requests per second:    112.38 [#/sec] (mean)
Time per request:       106.783 [ms] (mean)
Time per request:       8.899 [ms] (mean, across all concurrent requests)
Transfer rate:          47.10 [Kbytes/sec] received

This is faster too.

#for concurrency level: 1

#Requests per second:    15.27 [#/sec] (mean)
#Time per request:       65.468 [ms] (mean)
#Time per request:       65.468 [ms] (mean, across all concurrent requests)
#Transfer rate:          6.40 [Kbytes/sec] received


model is:
---------

#yes I need Service in my other controllers(xml-rpc)
from gluon.tools import Service


db = DAL('mysql://root:passw...@localhost/vae2')
session.forget()
service=Service(globals())



db.define_table('call_attempt',Field('requestedexten'),Field('requestingexten'),Field('calltime'),Field('uniqueid'),Field('transfer_capability'),Field('context'),Field('host'),Field('tmstmp','datetime',default=request.now),Field('owner',default=1),Field('ended',default="no"),migrate=False)


controllers are(few more not in this listing):
------------

#writing
def benchmark():

     return 
dict(db=db.call_attempt.insert(requestedexten="123123",requestingexten="12323234",calltime="2010-10-10-17:23:32",uniqueid="123123123.123123",transfer_capability="SOUND",context="asd",host="benchmark"))

#reading
def benchmark2():

     return dict(data="test")


btw I do not extend layout.html in my view, I just beautify(response.vars).
The most important thing: effects depend much on what you import.


--
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to