-
Notifications
You must be signed in to change notification settings - Fork 50
/
SPEED
37 lines (22 loc) · 1.14 KB
/
SPEED
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
- See also BENCHMARKS
This FTPd should be very performant. The reasons for this are below, followed
by specific benchmarks as and when I get them.
1) Generally, it is a fairly minimal FTPd. There should not be much code and/or
syscall bloat.
2) For binary downloads, Linux sendfile() is used. This is a lot lighter on
CPU/syscall usage than your regular read()/write() loop.
3) The "ls" command is fully internal. That is to say, an external "ls" command
does not need to be launch. Launching an external process is costly because
of the fork(), exec(), ELF loader startup, etc.
It is not all good news, of course. Potential sources of poor performance
include
1) Overhead of two processes per session (in some common configurations).
2) Excessive heap usage hidden behind the string API.
BENCHMARKS
==========
1) vsftpd downloads ASCII data at at least twice the rate of wu-ftpd.
2) vsftpd has achieved 86Mbyte/sec download over Gigabit ethernet between
Linux-2.4.x boxes (thanks to sendfile())
3) vsftpd has smaller virtual memory usage (and RSS, it seems)
4) Various reports have trickled in and indicate that vsftpd thumps wu-ftpd
in performance tests.