Re: High volume websites using Python web server software?

From: Josiah Carlson (jcarlson_at_uci.edu)
Date: 10/27/04


Date: Wed, 27 Oct 2004 12:10:28 -0700
To: Irmen de Jong <irmen@-nospam-remove-this-xs4all.nl>, python-list@python.org


Irmen de Jong <irmen@-nospam-remove-this-xs4all.nl> wrote:
>
> Ian Bicking wrote:
> > I think he's talking about servers that server a higher-than-normal
> > number of simultaneous connections.
>
> Well, not necessarily so, but this is an even better description.
> I was looking for web sites with moderate visitor counts
> (where 'high' means Yahoo, Google, Cnn, and 'low' means a
> 200-user forum about automobiles) that are running on one of Python's
> web application servers / network servers.
>
> If it's a site that uses an async I/O framework, and it actually
> does sustains the potential very large amount of simultaneous
> connections, even better.
> Actually, it doesn't even have to be a web site. A 10.000-user IRC
> server in Python would also qualify :)
>
> Why am I asking this?
> Someone on a programming forum elsewhere was sceptical that you
> can create high performance Python network servers.
> I suggested Twisted or Medusa. He asked for example servers.
> So there you are :)
>
>
> Anyway I've got a few pointers from the replies already given.
> Thanks!

Using a heavily customized variant of asyncore, I have written a client
that can handle 500 simultaneous connections (default file handle limit
with Python is 512) on a modern (1+ghz) processor. It is actually
limited by bandwidth and latency on our 100mbit connection, as the
protocol is fairly chatty.

We have benchmarked it (each command results in a delay of
.25/random.random() seconds, timeouts set at 30 seconds), and it comes
out to roughly 4.8 million of these connections per day on a single
processor (we are unsure if it scales running multiple processes on a
multiple processor machine, as 99% of the processor use is system-level
select.select() calls).

We are actually concerned with accidentally DOSing remote servers that
have less efficient server implementations.

Is that high enough volume?

 - Josiah



Relevant Pages

  • Outbound TCP issue, potentially related to FreeBSD-SA-05:08.kmem [REVISED]
    ... separate FreeBSD machine. ... Outbound TCP connections are randomly failing to connect. ... It only impacts outgoing connections from our web servers - no ... finding that the failures were not port-specific, ...
    (freebsd-net)
  • Re: How to stop two servers in different sites trying to replicate with each other
    ... communicate directly with Site C and vice versa. ... ADSS the DC in Site B keeps setting up one of its replication partners to ... ISTG for intersites connections using BH) ... the ISTG won't use the BH servers between Site C and SiteB to ...
    (microsoft.public.win2000.active_directory)
  • Re: sysctl kern.ipc.somaxconn limit 65535 why?
    ... somaxconn is the connection queue depth. ... userland application is not servicing the connect queue often enough. ... instead of the maximum number of connections as the it suggests. ... I manage some servers for a very large website, ...
    (freebsd-current)
  • Re: RRAS Dial on demand
    ... One of the servers I tested previously is now accepting connections. ... > Created DOD interface with name DOD1 ...
    (microsoft.public.windows.server.sbs)
  • RE: I think Ive been hacked...please help!
    ... ./I have several machines that are using excessive bandwidth. ... I find multiple connections to servers with names like ... ./Incoming connections are random although 1067 seems to be a common one. ... Maybe they don't see eggdrops as a threat / trojan. ...
    (Incidents)