3 This FTPd should be very performant. The reasons for this are below, followed
4 by specific benchmarks as and when I get them.
6 1) Generally, it is a fairly minimal FTPd. There should not be much code and/or
9 2) For binary downloads, Linux sendfile() is used. This is a lot lighter on
10 CPU/syscall usage than your regular read()/write() loop.
12 3) The "ls" command is fully internal. That is to say, an external "ls" command
13 does not need to be launch. Launching an external process is costly because
14 of the fork(), exec(), ELF loader startup, etc.
17 It is not all good news, of course. Potential sources of poor performance
20 1) Overhead of two processes per session (in some common configurations).
22 2) Excessive heap usage hidden behind the string API.
28 1) vsftpd downloads ASCII data at at least twice the rate of wu-ftpd.
30 2) vsftpd has achieved 86Mbyte/sec download over Gigabit ethernet between
31 Linux-2.4.x boxes (thanks to sendfile())
33 3) vsftpd has smaller virtual memory usage (and RSS, it seems)
35 4) Various reports have trickled in and indicate that vsftpd thumps wu-ftpd