We help IT Professionals succeed at work.

vsftp download transfer is slow

Medium Priority
2,632 Views
Last Modified: 2012-06-21
I'm transferring files via VSFTP from Voxel.net server to Spry servers. I'm using WS_FTP pro and the transfer speeds are so slow (7 KB/s).

So I'm trying to download to my local computer from Voxel first and the download speeds vary from 30 KB/s to 198 KB/s. Not great.

I'm wondering if ftp via SSH on the command line will that be faster because I guess, technically, the data is going through my computer as the middle man.

Is there some program that I can download faster? Are there some settings I can change to increase the FTP speeds?

I was told to look at my CPU and all the info. I have this:

top -H
top - 09:52:09 up 3 days, 16:01,  1 user,  load average: 0.08, 0.02, 0.01
Tasks:  35 total,   1 running,  34 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    512000k total,   337756k used,   174244k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      18   0  2540 1404 1184 S    0  0.3   0:01.42 init
 1110 root      15   0  5548  932  520 S    0  0.2   0:02.53 sshd
 1112 root      15   0  3208 1052  804 S    0  0.2   0:03.18 syslog-ng
 1117 root      15   0  2372  892  704 S    0  0.2   3:03.57 cron
 1122 mysql     15   0  127m  29m 6224 S    0  5.9   0:00.05 mysqld
 1140 mysql     18   0  127m  29m 6224 S    0  5.9   0:00.00 mysqld
 1141 mysql     16   0  127m  29m 6224 S    0  5.9   0:00.00 mysqld
 1142 mysql     15   0  127m  29m 6224 S    0  5.9   0:00.00 mysqld
 1143 mysql     18   0  127m  29m 6224 S    0  5.9   0:00.00 mysqld
 1145 mysql     18   0  127m  29m 6224 S    0  5.9   0:03.90 mysqld
 1146 mysql     18   0  127m  29m 6224 S    0  5.9   0:04.64 mysqld
 1147 mysql     15   0  127m  29m 6224 S    0  5.9   0:00.00 mysqld
 1148 mysql     15   0  127m  29m 6224 S    0  5.9   0:00.00 mysqld
 1170 mysql     18   0  127m  29m 6224 S    0  5.9   0:02.34 mysqld
 7748 root      18   0 35464 8148 4528 S    0  1.6   0:00.84 apache2
 7751 www-data  15   0 44392  16m 4004 S    0  3.3   0:03.76 apache2
 7752 www-data  15   0 40736  12m 3852 S    0  2.6   0:00.81 apache2

Open in new window


Spry support said it could be my container or other config. Don't know what a container is or what config to look at though.

The other thing to mention is that the Spry is Ubuntu and the Voxel servers are Centos. Don't think that matters though.

Any help is appreciated.

Victor
Comment
Watch Question

Senior Systems Administrator - Web hosting and Network Security.
Commented:
Hi

using ssh instead of ftp will add encryption that has to be processed, while the file is transferring.
If anything, it will be slower.

Compare the speed with a file served on apache.
You can use wget to download the file.

wget http://url.to.your.server/testfile 

See if you get a faster transfer rate using http.

Depending on the different locations of the servers, this is probably just congested lines.
Did you look for a local mirror site?

BitFreeze.
CERTIFIED EXPERT
Commented:
First thing that you have to determine is whether it has something to do with the client or with the server.  So an easy test is to use another ftp client and see if that changes anything, if the rate stays exactly the same, we can say that it is definitely the server.

Having said that, I never liked WS program

Try filezilla
http://filezilla-project.org/
CERTIFIED EXPERT
Commented:
You metrics are pretty good and are not showing anything extraordinary for ftp
Victor KimuraSEO, Web Developer

Author

Commented:
Can I use wget on my Spry account to download files of a folder recursively from all files  in /var/www/ of the Voxel account?
Pieter JordaanSenior Systems Administrator - Web hosting and Network Security.
Commented:

You can mirror it:
wget -m ftp://ftp.server.com 

Or do a recursive download using wget:
wget -r ftp://ftp.server.com/folder

It also support levels, so you can tell it to download recursively, but only two levels:
wget -r --level=2 ftp://ftp.server.com/folder

This also works over http instead of ftp.

The manual can be found here: http://www.gnu.org/software/wget/manual/wget.html

BitFreeze.
Victor KimuraSEO, Web Developer

Author

Commented:
Hi BitFreeze:

I get this:

wget http://72.251.199.218/test.php
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files\GnuWin32/etc/wgetrc
--2011-11-03 16:09:22--  http://72.251.199.218/test.php
Connecting to 72.251.199.218:80... connected.
HTTP request sent, awaiting response... 500 Internal Server Error
2011-11-03 16:09:24 ERROR 500: Internal Server Error.

Open in new window


I tried this:
wget --ftp-user=*** --ftp-password='***' http://72.251.199.218/test.php
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files\GnuWin32/etc/wgetrc
--2011-11-03 16:16:14--  http://72.251.199.218/test.php
Connecting to 72.251.199.218:80... connected.
HTTP request sent, awaiting response... 500 Internal Server Error
2011-11-03 16:16:17 ERROR 500: Internal Server Error.

Open in new window


Thanks
Victor

Pieter JordaanSenior Systems Administrator - Web hosting and Network Security.

Commented:
Can you access that file using your browser ?
Victor KimuraSEO, Web Developer

Author

Commented:
No.

I read that I can use wget with an ftp username and password. Is this right?
Pieter JordaanSenior Systems Administrator - Web hosting and Network Security.
Commented:
If you are serving the file on an ftp server on the ftp protocol, yes.

For http - http://www.gnu.org/software/wget/manual/html_node/HTTP-Options.html
Look at --http-user=user ‘--http-password=password

you can also send the username and password for http inside the url:

wget http://username:password@example.com
Although this is less secure.
Victor KimuraSEO, Web Developer

Author

Commented:
Thanks.