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.