[Stackless] Stackless Twisted Integration Example

Carlos Eduardo de Paula cedepaula at yahoo.com.br
Mon Feb 26 22:44:36 CET 2007


Hey Andrew,

Its a very nice approach the integration you made of stackless and twisted. 

I played a little with twisted some weeks ago, more focused on the perspective broker module. Its a great way for doing remote method calls almost transparently.

I even submitted a patch for analysis which adds support for anonymous login access into its authentication scheme.

I will think in an example merging your integration but using twisted PB that in my opinion is one of the best features in twisted.

My current computer is a Pentium 4 2.8Ghz, the only changes I made to your code is adding the sleep call in tick. For testing, I wrote a small bit like this:

----------------------------------------
import urllib
import time
import socket

socket.setdefaulttimeout(2)
end = 0
count = 0

def test():
    global count, end
    start = time.time()
    for i in xrange(200):
        urlopener = urllib.URLopener()
        res = urlopener.open(r'http://localhost:8000/')
        count += 1
    end = time.time() - start

test()
print "Ended with ", count, " transactions, ", count / end, " TPS"
    
----------------------------------------
I got around 60 TPS... to check if the bottleneck was in the "client" i wrote a threaded one and got the same results with many threads.

Whats interesting is that I always get around 60-65 TPS but my CPU usage is extremely low.. the server process uses less then 1%, I think there´s something limiting inside the server.

I will try to read some documentation on twisted side also... may we could get better performance having the server spawn a new tasklet handler for each incoming connection, then it would open a CGI tasklet also and the server would perform better. I will give it a try... need to study some more twisted...


As I do more tests, I keep you informed, any suggestion is welcome.

Carlos


----- Original Message ----
From: Andrew Francis <andrewfr_ice at yahoo.com>
To: Carlos Eduardo de Paula <cedepaula at yahoo.com.br>; Stackless mailing list <stackless at stackless.com>
Cc: Andrew Francis <andrewfr_ice at yahoo.com>
Sent: Monday, February 26, 2007 5:57:19 PM
Subject: Re: [Stackless] Stackless Twisted Integration Example

Hello Carlos:

--- Carlos Eduardo de Paula <cedepaula at yahoo.com.br>
wrote:

> Testing the threaded approach, looks like that if
> you do too many reloads (can be done in the browser
> itself), the server stops responding.

Out of curiousity, how much is too many?  Also what
sort of processor/OS? Also does the server eventually
catch up? So far I have just tried reloading through
the browser. I should write an automated test.

> It seems that the tick is taking too much 
>processor in its busy wait.

Yes it is a tight poll. It is there for illustrative
purposes. 

> I added a call to time.sleep(0.001) inside
> Tick loop and it seem much more responsive to the
> requests.

Cool.
 
> I will try to test how many transactions per second
> it can handle.

Thanks, we can compare notes. So far do you have any
additional comments about the approach?

Cheers,
Andrew


 
____________________________________________________________________________________
Now that's room service!  Choose from over 150,000 hotels
in 45,000 destinations on Yahoo! Travel to find your fit.
http://farechase.yahoo.com/promo-generic-14795097





 
____________________________________________________________________________________
Expecting? Get great news right away with email Auto-Check. 
Try the Yahoo! Mail Beta.
http://advision.webevents.yahoo.com/mailbeta/newmail_tools.html 

_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless



More information about the Stackless mailing list