Glyph,

Thanks for the response.

We're trying to proxy multiple VNC processes for a screen sharing
application. So though CPU load is low, the data being pushed out is
pretty high. We have around 16Kb of data being pushed out per second per
client for a normal case. The test server is running on EC2, but we see
the degradation in the production deployment (on physical machines
running on a cogent fiber connection). I was thinking it might have
something to do with amount of data being written and number of
simultenous writes issued. Something to do with transport.write()

I'll take a look at txloadbalancer. 

I can make a benchmarking application available to you, please mail me
off the list at [email protected]

Regards
Saurav

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of
[email protected]
Sent: Friday, May 01, 2009 12:00 PM
To: [email protected]
Subject: Twisted-Python Digest, Vol 62, Issue 2

Send Twisted-Python mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Twisted-Python digest..."


Today's Topics:

   1. Re: TCP Proxy scalability issue ([email protected])


----------------------------------------------------------------------

Message: 1
Date: Fri, 01 May 2009 15:54:56 -0000
From: [email protected]
Subject: Re: [Twisted-Python] TCP Proxy scalability issue
To: Twisted general discussion <[email protected]>
Message-ID:
        
<20090501155456.12555.1002021953.divmod.xquotient.10...@weber.divmod.com
>
        
Content-Type: text/plain; charset="utf-8"; format="flowed"

On 02:02 pm, [email protected] wrote:
>Worker processes W1...n run listening on P1..n on the loopback and one
>router process (twisted based) runs on public port P0 exposed to the
>real world.

I haven't used it myself, but that sounds a bit like txloadbalancer: 
https://launchpad.net/txloadbalancer

Are you using that?
>The clients connect to P0 and the first few bytes they send indicates
>which worker process they wish to connect to. The Twisted protocol
>implementation then creates a relay TCP connection to loopback worker
>process port and after that forwards received data on P0 to the worker
>port on loop back and sends back data received from worker port to the
>external connection.

>We're noticing significant degradation / starvation of the clients 
>under
>load (around 25 concurrent connections are enough to simulate this).

>We're running on Linux (CentOS 5.2) using python 2.5 and Twisted latest
>source tarball using the epoll reactor and all settings are default.
>Each connection sends back around 8-24kb data per second.

While every application is a unique beast in terms of performance 
tuning, these numbers all sound surprisingly low to me for something as 
simple as a TCP proxy.

Are you saturating your CPU?  What is the load like on the box in 
question, both from the Twisted proxy and from the other processes?

Can you provide a benchmark that we can run somewhere else, to 
demonstrate the issue you're having?
>My question is are there any "production" settings I need to do
>(threadpool etc.) to get the maximum out of twisted.

Nothing that you described will make any use of threads - is there some 
reason you mention threadpool size?

If you *are* using threads then perhaps you shouldn't be, and they're 
causing performance problems :)

However, aside from reactor selection, Twisted is designed to have very 
few knobs to turn; it has one button for performance tuning and we push 
it before it leaves the factory.  So if there's a performance problem, 
the issue is that we need to optimize something in Twisted, or you need 
to optimize something in your application.

You may be able to tweak various linux kernel parameters to be able to 
improve things a bit, but if you're running into problems at 25 
connections, it doesn't sound like you're running into kernel issues to 
me.



------------------------------

_______________________________________________
Twisted-Python mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python


End of Twisted-Python Digest, Vol 62, Issue 2
*********************************************

_______________________________________________
Twisted-Python mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to