Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 02 Dec 1997 01:46:34 -0800
From:      David Greenman <dg@root.com>
To:        Charles Mott <cmott@srv.net>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: ftp server on ftp.cdrom.com 
Message-ID:  <199712020946.BAA16682@implode.root.com>
In-Reply-To: Your message of "Tue, 02 Dec 1997 02:05:39 MST." <Pine.BSF.3.96.971202013533.9777A-100000@darkstar.home> 

next in thread | previous in thread | raw e-mail | index | archive | help
>>    Anyway, I don't mean to squelch the conversation regarding this, but
>> I do ask that people not make silly assumptions without first actually
>> studying the problem.
>> 
>> -DG
>
>No aspersions were intended towards your ftpd, at least on my earlier

   None taken.

>Shared memory and advisory locking are a big nuisance to deal with when
>trying to make software cleanly compile across different platforms and
>kernel configurations.  Threading eliminates the need for these things but
>also creates other headaches.  For moderate numbers of open sockets (50 to
>100), a synchronous state machine with non-blocking I/O doesn't sound that
>bad for some of my modest needs (far smaller than the Mt. Everest of
>wcarchive). 

   One of the reasons why I'm not releasing my hacked-up ftpd server is
that it doesn't have any of the portability stuff of wu-ftpd (and never
will). It is further highly FreeBSD-centric, even to the point of being
built with it's own hacked up libc. Trying to support this in any general
sense would be a nightmare...supporting FreeBSD is plenty enough to keep
me awake at night. :-)

>>From your standpoint, would there be performance advantages to 50
>processes each handling 50 connections vs. 2500 processes?  Or as you say,
>are sockets and disk I/O the primary thing?

   I think when the numbers of connections are on the order of 50-100, it
doesn't make much difference which method you use. The traditional method
of fork/exec for each ftpd is, however, rather expensive, so any server
expected to do moderate to heavy work should at least run standalone - not
from inetd. Other than that, I don't think a monolithic server (multi-
threaded or a big state machine) vs. a one server process per connection
is going to matter.

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712020946.BAA16682>