Do Faster Downloads With ProZilla!

by Jerry L Kreps, aka GreyGeek

One evening a few weeks ago I was engaged in one of my favorite pastime activities: surfing the repository to read the descriptions of the applications it contains! One application raised my curiosity. It was named "ProZilla". The description stated:

A multithreaded download accelerator:
ProZilla is a multi-threaded download accelerator for Linux which supports both HTTP and FTP protocols. It makes multiple connections to the server and downloads the file in portions, thus giving a much better speed rate than the conventional download programs which use a single connection. Resuming connections is fully supported and customizable.

Installing ProZilla, and trying to install its GUI

I installed ProZilla using Synaptic and began looking for its GUI in the menu structure. No joy. So, I ran the KDE menu update tool. Still no joy. Then it dawned on me: ProZilla didn't include a GUI. I went to the ProZilla website, http://prozilla.genesys.ro , and found a GUI there. I also noticed that development for ProZilla had essentially ceased more than three years ago on that site. The GUI offered was the Mandrake version, dated June 29, 2004. I tried to install the Mandrake version with KPackage and got an error message about missing dependencies. Despite that error message it appeared that a GUI of some sort was installed! I ran it only to find that it crashed when I directed it to an ISO file on the Internet. I removed it using KPackage, and ran "fix broken packages" just for good measure. Then I tried the static GUI rpm. A test install gave the message:

<ds/prozgui-2.0.4beta-static.i386.rpm';echo RESULT=$?

file /usr/include/prozilla.h from install of prozgui-2.0.4beta-static conflicts with file from package

prozilla-devel-2.0.4-1pclos2007

file /usr/lib/libprozilla.a from install of prozgui-2.0.4beta-static conflicts with file from package prozilla-devel-2.0.4-1pclos2007

file /usr/lib/libprozilla.la from install of prozgui-2.0.4beta-static conflicts with file from package prozilla-devel-2.0.4-1pclos2007

RESULT=1

I used Synaptic to remove prozilla-devel-2.0.4-1pclos2007, because I had no plans to do any development on ProZilla. Then I did a test install of prozgui, which gave a "Result=0". However, alas, the ACTUAL install resulted in the message:

</home/jerry/downloads/prozgui-2.0.4beta-static.i386.rpm';echo RESULT=$?

/var/tmp/rpm-tmp.77695: line 1: fg: no job control

error: %post(prozgui-2.0.4beta-static.i386) scriptlet failed, exit status 1

RESULT=1

No problem. I'll just uninstall it. The uninstall gave me the same message!

Uh oh! An application that won't uninstall! The RPM package was improperly built. That is a problem when one uses RPMs that are not from the PCLinuxOS repository. I usually use KPackage when installing foreign RPMs. One of the options is to run or not run the package scripts. I unchecked the scripts option and redid the uninstall. The package was removed.

Running Proz

This left me with only one way to run the program, the command line. I opened a Konsole and typed in "prozilla". I was greeted with "bash: prozilla: command not found". So, it was named "ProZilla" in the repository but is saved under a different name in the directory.

Note to New Users: I didn't enter "ProZilla" because Linux binaries are rarely named using mixed or upper case characters.

Knowing that most executable applications or scripts are usually located in a bin directory, I gave the Konsole another command:

[jerry@GreyGeek Laptop ~]$ locate bin/pro

/bin/procps3-kill

/bin/progress

/usr/bin/procmail

/usr/bin/profiles

/usr/bin/promisc_check

/usr/bin/protoize

/usr/bin/proxymngr

/usr/bin/proz

[jerry@GreyGeek Laptop ~]$

And there it was, the last entry! Now I needed to learn how to run it. Because I know now that it is a curses or text based program I also know that I can use the "man" pages to learn about it. I issued "man proz" in the Konsole window and started reading.

The basic command sequence I decided to use first was:

proz -v -f -s URL/to/distro.iso

where "-v" is the verbose mode, "-f" suppresses prompts on save, and "-s" does an ftp search for faster mirrors. I had seen the announcement about the PCLinuxOS Business Enterprise distro and decided to download it using proz.

Here is the command I issued:

proz -v -f -s http://pclosbe.org/BELServerBasicRC3.iso

I obtained the URL by browsing to the download directory, right mousing on the file listing of BELServerBasicRC3.iso, and selecting "Copy link location" from the pop up menu options. Then I typed in the first part of the command:

proz -v -f -s

and selected "Paste" from the Konsole "Edit" menu to form the complete command.

When I issued the command the lines in the Konsole window were re-organized and began displaying the results of the command. Here is what I saw:

pic1

My first result was surprising. ProZilla's web page indicated that it would improve download speeds by 200% to 300%. Since my download speed using FireFox just after I used proz was around 230Kb/s, this was almost a 330% improvement! The download time dropped from 53 minutes to 15 minutes.

I tried the same download again, this time using 20 threads. Here is the result:

pic2

The speed was at least 430% of my FireFox download time!! I'd much rather have a 12 minute download time than a 53 minute time.

I tried the download on my T3 line at work during my breaks Here are the results for several thread counts:

Number of Threads    Time        Ave Kb/s DL Speed
4 (default)        6 min 15 sec    2000
10                 2 min 30 sec    4290
20                 2 min  5 sec    4700
40                 1 min 40 sec    6250

Obviously a T3 line is significantly faster than a 10Mb/s cable connection. Again, I'd take less than 2 minutes over 53 minutes anytime, if I could afford a T3 line.

I decided to try downloading something from another site to see the difference a site would make. I chose KNOPPIX:

proz -v -f -s -k=10 ftp://ftp.freenet.de/pub/ftp.uni- kl.de/pub/linux/knoppix/KNOPPIX_V5.1.1CD-2007-01-04-EN.iso

And here are the initial results, just a few seconds into the download:

pic3

Notice that three of the threads were denied login. Later, as threads fulfilled their quota, the denied threads were allowed to login and download their segments, as shown below:

pic4

Also notice that the initial download speed was a respectable 970Kb/s, which is about 4 times my current FireFox rate. Some threads were faster than others, sometimes by a factor of two. While testing other downloads I found that it was normal for the download speed to taper off near the end as individual threads finished their work, so ending up with a download rate of 903Kb/s isn't bad. I also noticed that the "Current Speed" could be as much as 1.5 to 2 times the average download speed. When the current speed drops below the average speed you know that the majority of threads are finished and the download is near completion.

Another comparison between a 10Mb/s cable and a T3 line

Here's the download of the 4.2 GB DVD version of Ubuntu-7.04 from my 10Mb/s account using 20 threads:

pic5

Below is the same download from my T3 connection:

pic6

The download time dropped from over 1 hour and an half to under 15 minutes, which gives you a good idea about the differences between a 10Mb/s connection and a T3 line.

If I set "k=1" then proz downloads the Ubuntu DVD offering in 31 minutes and 10 seconds on the T3 line. If I use FireFox, even with 8 pipelines, I get only 483Kb/s on the T3 line and FireFox reports it will take 2 hours 22 minutes and change.

Summary

Using ProZilla is a definite time saver no matter what your connection bandwidth. Occasionally ProZilla would stop downloading before completing its task and the average speed rate would gradually diminish as time progressed. I noticed this happened sometimes when I opened Snapshot on top of the Konsole window.

I googled around to see if there were other download accelerators available for Linux and discovered two more: Prosilla and Axel. Neither are in development or maintenance. Prosilla is also a command line application but has a slightly different display format, as shown by snapshots on its web page, which show ETA's on individual threads. I did not download and try Prosilla, but I did download Axel from the repository. Unfortunately, it would crash every time I ran it.

Top