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
