<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal>Hi,<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>We&#8217;re currently running a TCP proxy&nbsp; / port
multiplexer written in Twisted to route to multiple worker server processes
running on loopback ports.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>The architecture is something like this<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Worker processes W1&#8230;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.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>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.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>We&#8217;re noticing significant degradation / starvation of
the clients under load (around 25 concurrent connections are enough to simulate
this).<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>We&#8217;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.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>My question is are there any &#8220;production&#8221;
settings I need to do (threadpool etc.) to get the maximum out of twisted.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Regards<o:p></o:p></p>

<p class=MsoNormal>Saurav<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-bottom:12.0pt'><b><span style='font-size:7.0pt;
font-family:"Verdana","sans-serif";color:#7D7D7D'>Saurav Mohapatra<br>
</span></b><span style='font-size:7.0pt;font-family:"Verdana","sans-serif";
color:#7D7D7D'>Director of Technology<br>
<br>
</span><span style='font-size:7.0pt;font-family:"Verdana","sans-serif";
color:#EBAF5E'><br>
</span><span style='font-size:7.0pt;font-family:Wingdings;color:#7D7D7D'>(</span><span
style='font-size:7.0pt;font-family:"Arial","sans-serif";color:#7D7D7D'> &nbsp;</span><span
style='font-size:7.0pt;font-family:"Verdana","sans-serif";color:#7D7D7D'>508.875.9501
&nbsp;</span><b><span style='font-size:7.0pt;font-family:"Verdana","sans-serif";
color:#EBAF5E'>|</span></b><b><span style='font-size:7.0pt;font-family:"Verdana","sans-serif";
color:#00007D'> </span></b><span style='font-size:7.0pt;font-family:"Verdana","sans-serif";
color:#7D7D7D'>Mobile: 774.242.7422<br>
</span><span style='font-size:7.0pt;font-family:Wingdings;color:#7D7D7D'>*</span><span
style='font-size:7.0pt;font-family:"Verdana","sans-serif";color:#7D7D7D'>
&nbsp;</span><u><span style='font-size:7.0pt;font-family:"Verdana","sans-serif";
color:#0000FE'><a href="name@dimdim.com"><span style='color:blue'>saurav@dimdim.com</span></a><br>
</span></u><span style='font-size:7.0pt;font-family:"Verdana","sans-serif";
color:#7D7D7D'>Skype: mohaps &nbsp;&nbsp;</span><b><span style='font-size:7.0pt;
font-family:"Verdana","sans-serif";color:#EBAF5E'>| &nbsp;&nbsp;</span></b><span
style='font-size:7.0pt;font-family:"Verdana","sans-serif";color:#7D7D7D'>AIM:
mohaps<br>
</span><span style='font-size:7.0pt;font-family:"Verdana","sans-serif";
color:#0000FE'><br>
<img border=0 width=87 height=37 id="Picture_x0020_1"
src="cid:image001.png@01C9CA43.FAD54430" alt="cid:3305008625_6871856"></span><b><span
style='font-size:8.0pt;font-family:"Arial","sans-serif";color:#7C7C7C'>&nbsp;&nbsp;&nbsp;</span></b><span
style='font-size:7.0pt;font-family:"Verdana","sans-serif";color:#7D7D7D'>Meet <b>freely.</b></span><span
style='color:#1F497D'><o:p></o:p></span></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>