# different ftpd with lower cpu usage?



## bthomson (Oct 2, 2010)

I have a low-power atom server that tops out at 16MB/s ethernet transfer with the built-in ftpd pegging one core. Are there any protocols/ftp servers likely to use less cpu? I think this is the transfer speed bottleneck as iperf shows 800Mbit bandwidth on the gigE and iozone shows 80MB/s write throughput to the zfs tank.


----------



## Galactic_Dominator (Oct 3, 2010)

Well SFTP normally isn't considered the most efficient of protocols, but IME it's quite a bit better than standard FTP.  I'm not sure how your setup will effect that, but on normal x86 hardware that's the case.  Or give rsync a try if suitable.


----------



## dam23 (Oct 6, 2010)

SFTP being basically FTP over SSH, you're going to look at a higher CPU usage.


You might want to try transferring your file over a lightweight HTTP server like nginx or lighttpd to compare the results with what you get over FTP.


You also need to differentiate between transferring many small files vs one large file.

Obviously you won't be getting as good results with many small files.


Regarding the available FTP servers you can try:
- proftpd
- vsftpd
- pureftpd


Additionally, it is my understanding that ZFS is barely production grade on FreeBSD and that it needs some tuning and a lot of memory to be effective, see here:
http://wiki.freebsd.org/ZFS


----------



## expl (Oct 6, 2010)

FTP/HTTP are not really good protocols regarding CPU consumption and transfer speed as they are not designed for that. If your clients are on a stable high bandwidth network you should use NFSd over UDP and tinker with itÂ´s (and kernelÂ´s) settings for maximum performance.


----------



## Galactic_Dominator (Oct 6, 2010)

dam23 said:
			
		

> SFTP being basically FTP over SSH, you're going to look at a higher CPU usage.


Um, no.  Perhaps you're thinking of FTPS which is basically that.


			
				dam23 said:
			
		

> Additionally, it is my understanding that ZFS is barely production grade on FreeBSD and that it needs some tuning and a lot of memory to be effective, see here:
> http://wiki.freebsd.org/ZFS


Is that like being barely pregnant?  :\  In all seriousness though, it's probably better to leave the speculation aside.  You statement overall is simply incorrect and not helpful.  The FreeBSD Wiki on ZFS is badly out of date in some areas, and should not be used to judge it's performance or stability.


----------



## DutchDaemon (Oct 6, 2010)

Sftp = ssh
ftps = ssl


----------



## bthomson (Oct 7, 2010)

Thanks for the replies. I should have specified that I'm talking about single-file transfers and it is a stable gigE network.

From previous experience I thought the NFS protocol had more overhead than FTP, but I'll give it another try.

SFTP tops out at 7MB/s with one cpu core pegged in this setup.

Except for one kernel panic before tuning I have been very happy with ZFS on this machine.


----------



## Galactic_Dominator (Oct 7, 2010)

Well there is rcp, that might work for you.  Of course, for simple raw speed, you can't beat netcat.


----------



## bthomson (Oct 7, 2010)

NFS tcp mount is blazing at 37MB/s and with only about 50% cpu usage which is a huge improvement. Apparently the default mount is udp which only gives 7MB/s for some reason; that's probably why I thought NFS was worse.

Or maybe the udp mount just needs some kernel tuning to work well.

I see from the NFS tuning guide there is a lot to try so I'm sure that will keep me busy.

Thanks again.


----------

