<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>RE: [JDEV] Performance</TITLE>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META content="MSHTML 5.00.3013.2600" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN class=900103120-25042000>The 
number of open sockets is indeed a big issue. The main memory 'eater' with 
multiple TCP/IP sockets is the kernel-level memory. At last I heard (which is 
another way of saying 'don't hold me to these numbers'), one active client 
connection took about 50k.</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=900103120-25042000></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN class=900103120-25042000>With 
Linux, you have to do some kernel reconfiguration to get above 1024 file 
descriptors per process(temas today explained how to do it without recompiling 
the kernel, I need to explore this area of l-k more). a TCP connection is of 
course represented by a file descriptor.</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=900103120-25042000></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN class=900103120-25042000>Note 
that much of the memory above is stack for each session. Even if you somehow 
eliminated the stack and the heap for each open connection, you'd find that the 
kernel memory for each client was about 16k (which is unswapable). You could 
<STRONG>possibly</STRONG> get this down to 8k (two 4k pages), but one 4k page 
does not have enough space to handle an active TCP 
connection.</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=900103120-25042000></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN class=900103120-25042000>At 
least (from the numbers I've seen) the server is not 
CPU-limited.</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=900103120-25042000></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN class=900103120-25042000>So 
unless you rewrote the Jabber server to not require separate stack spaces, and 
rewrote&nbsp;some operating system kernel to somehow 'share' a large datablock 
between many 'idle' TCP sockets, I don't know of any way you could acheive an 
extremely large number of users on one server. I do not know of any operating 
system that can handle an extremely large number of TCP connections- 10k is 
ususlly the first real limit a machine hits.</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=900103120-25042000></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN class=900103120-25042000>It 
would seem the only&nbsp;other feasible you can manage this is to rewrite the 
Jabber server to allow clusters of machines. You could also attempt to modify 
the Jabber protocol to use UDP, but then you would have something new that 
wasn't Jabber anyways.</SPAN></FONT></DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN 
class=900103120-25042000></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT color=#0000ff face=Arial size=2><SPAN class=900103120-25042000>-David 
Waite</SPAN></FONT></DIV>
<BLOCKQUOTE 
style="BORDER-LEFT: #0000ff 2px solid; MARGIN-LEFT: 5px; PADDING-LEFT: 5px">
  <DIV align=left class=OutlookMessageHeader dir=ltr><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><B>From:</B> jdev-admin@jabber.org 
  [mailto:jdev-admin@jabber.org]<B>On Behalf Of </B>Michael 
  Petras<BR><B>Sent:</B> Tuesday, April 25, 2000 10:20 AM<BR><B>To:</B> 
  'jdev@jabber.org'<BR><B>Cc:</B> Douglas Petty<BR><B>Subject:</B> RE: [JDEV] 
  Performance<BR><BR></DIV></FONT>
  <P><FONT color=#0000ff face=Arial size=2>One aspect of performance I was 
  wondering how Jabber addresses is the number of open sockets. Does the</FONT> 
  <BR><FONT color=#0000ff face=Arial size=2>Jabber server keep a TCP socket open 
  for each logged in client? What determines how many sockets can be open</FONT> 
  <BR><FONT color=#0000ff face=Arial size=2>simulatenously using Linux? Does 
  Jabber or Linux do any tricks to increase the number of open sockets (such 
  as</FONT> <BR><FONT color=#0000ff face=Arial size=2>transforming open, but 
  quiet sockets into some placeholder objects that use minimal memory until the 
  next message)?</FONT> <BR><FONT color=#0000ff face=Arial size=2>Does anyone 
  know of any implementations that do this? Does anyone know how big IM/presence 
  servers like Yahoo, ICQ </FONT><BR><FONT color=#0000ff face=Arial size=2>or 
  AOL handles this?</FONT> </P>
  <P><FONT color=#0000ff face=Arial size=2>Our applications have to communicate 
  with tens to hundreds of thousands of fairly low traffic clients. Our servers 
  run on </FONT></P>
  <P><FONT color=#0000ff face=Arial size=2>Windows NT where the limit on open 
  sockets is a significant issue. Thanks in advance for any info.</FONT> </P>
  <P><FONT color=#0000ff face=Arial 
  size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Thnx,</FONT> <BR><FONT color=#0000ff face=Arial 
  size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Mike Petras</FONT> </P>
  <UL>
    <P><FONT face=Arial size=1>-----Original Message-----</FONT> <BR><B><FONT 
    face=Arial size=1>From:&nbsp;&nbsp;</FONT></B> <FONT face=Arial size=1>David 
    Waite [SMTP:mass@ufl.edu]</FONT> <BR><B><FONT face=Arial 
    size=1>Sent:&nbsp;&nbsp;</FONT></B> <FONT face=Arial size=1>Tuesday, April 
    25, 2000 8:26 AM</FONT> <BR><B><FONT face=Arial 
    size=1>To:&nbsp;&nbsp;&nbsp;&nbsp;</FONT></B> <FONT face=Arial 
    size=1>jdev</FONT> <BR><B><FONT face=Arial 
    size=1>Subject:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></B> <FONT 
    face=Arial size=1>RE: [JDEV] Performance</FONT> </P>
    <P><FONT face=Arial size=2>It sounds more like the test was throttled due to 
    you sending too many</FONT> <BR><FONT face=Arial size=2>messages at once, 
    rather than any sort of scalability or other type of</FONT> <BR><FONT 
    face=Arial size=2>limitation in the Jabber server.</FONT> </P>
    <P><FONT face=Arial size=2>-David Waite</FONT> </P><BR>
    <P><FONT face=Arial size=2>-----Original Message-----</FONT> <BR><FONT 
    face=Arial size=2>Hi ,</FONT> <BR><FONT face=Arial 
    size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The real issue which I 
    want to highlight is not spammers but the</FONT> <BR><FONT face=Arial 
    size=2>Scalability of Jabber . The tests which I performed on Jabber clearly 
    showed</FONT> <BR><FONT face=Arial size=2>that it slows down which is 
    definitely not acceptable in real-life</FONT> <BR><FONT face=Arial 
    size=2>situations . Jabber has to be more scalable than it is now . Any 
    Thoughts</FONT> <BR><FONT face=Arial size=2>and Ideas ?</FONT> <BR><FONT 
    face=Arial size=2>Regards ,</FONT> <BR><FONT face=Arial size=2>chetan s . 
    ithal</FONT> </P><BR>
    <P><FONT face=Arial 
    size=2>_______________________________________________</FONT> <BR><FONT 
    face=Arial size=2>jdev mailing list</FONT> <BR><FONT face=Arial 
    size=2>jdev@jabber.org</FONT> <BR><FONT face=Arial size=2><A 
    href="http://mailman.jabber.org/listinfo/jdev" 
    target=_blank>http://mailman.jabber.org/listinfo/jdev</A></FONT> 
</P></UL></BLOCKQUOTE></BODY></HTML>