If your work requires that you use an FTP client daily or you’re just learning web programming/design and have a hosting account to which you upload your files, you need to optimize and maximize the speed of your transfers.
A friend of mine who is learning PHP and HTML/CSS complained that it takes half an hour to upload his Joomla installation to his web server and when I asked him how big is the whole folder he said 25MB. I was quite surprised, as I have the same Internet package as him (8Mbps download and 1Mbps upload) and it takes me at most 10 minutes (I never actually counted) to upload a full Drupal or Joomla installation, complete with themes and plugins.
I took a look at his computer and software and immediately found the culprit: the FTP client itself, Filezilla, which was running with default settings (I’ll explain below why this is bad).
I asked him why didn’t he customize the settings for his connection and he said, “Hey, I don’t really like to mess around with settings. If it works, it’s cool. I don’t need to mess something up and then not be able to connect to my site.”
I guess many people think so, but he was learning web development, and I thought he might want to see how everything works and customize it. Well, we’re all different, I thought, and explained him what he needs to do. After I came home, I wondered how many people have the same problem, and I found that there’s quite a few of them asking this question on forums.
This article is meant to explain to everyone how to increase their FTP client’s speed, using one simple setting, which is overlooked and left to default most of the times. But first, you might want to get the fastest FTP client, which, after testing dozens of them, I found to be Bitkinex, a free client.
Why is it faster?
The answer is simple: concurrent connections limit. Most of the available clients (even popular ones like Filezilla, Cuteftp, SmartFTP and FireFTP) are limited to 10 simultaneous connections (and the default setting is even lower, at 1-3 connections maximum).
What this means is that when you upload a folder with lots of files (which is almost always the case), the program will upload only 10 at a time, even if you’ve got plenty of bandwidth and speed left (imagine having a 10Mbit/s upload speed and uploading at only 512kbit/s; I know I’d feel disappointed
.
When you upload only one file, it will upload at full speed, but when you try uploading 10,000 (like in the case of a website, web software or Content Management System), you will be limited to 10 concurrent transfers using at most a third of your internet connection speed. This happens because of the software itself, which is slow to queue the files and keep track of each file’s status (when it was put in queue, when the upload was completed, what files are next, etc.). Why there are no programs capable of using 100 and more simultaneous connections is beyond my understanding
. The fastest I’ve seen is 50, and that record belongs to Bitkinex.
But if you like your current FTP client, you can continue using it, and you can make it faster by setting the simultaneous/concurrent connections setting to the maximum (which is usually 10 for most clients, and 50 for Bitkinex).
Here’s how to do it in various FTP clients. Read the rest of this entry »