Version 12, last updated by Xander Jansen at December 12, 2011 UTC

 

Case 1 - Test report up- and downloading large files (FileSender 0.1.15)

Conducted by:

Xander Jansen

These tests were conducted against the filesender-0.1.16.201008310000 nightly build with two non published developer files (filesender.swf and download.php). The two developer files contained preliminary code for the move from download through the Flash-interface to a download using the standard browser download functionality through a PHP backend (to eliminate all kinds of 32bits stuff preventing the download of very large files on some platforms).

Summary

  • All major browsers except for Safari tested on a Win7 platform. All browsers can download very large files (> 4GB) using the PHP download function.
  • Specifying a download location with a dialog box is browser-dependent. Can this be forced by filesender to always ask for a location (and name) to save the file?
  • Uploading is relatively slow which triggers a 8 hour simplesaml session duration limit. See notes for details.
  • Using SSL still impacts the download speed (not using SSL will triple the download rates in our test setup)
  • (local) storage performance is a significant factor when downloading (fast local disk versus slow(er) network share). In our test setup download speeds were doubled when using only fast local storage.
  • IE8 and Safari use a temporary file on the disk with the user profile (default setup) and appear to 'ignore' disk full situations.

Uploading

Source file was created on a Linux machine with dd containing random data:

  • Size in bytes: 107352743800 100GB-random.dat
  • MD5: 580b805cc0e82744af7a7294f64e8a58 100GB-random.dat

File was uploaded from a Windows 7 VM with good connectivity (1Gbps) and a short path to the filesender instance. Upload speeds of 113 Mbps with scp (!) are possible.

The 100GB file was located on a samba share (introducing additional network IO between the share and the VM). Note that downloading to a (fast) local disk can double/triple the download speeds as opposed to downloading to a (slowish) network share.

The upload initially was done from the VM with FireFox, reaching a max speed of about 4 Mbps (with Gears). Due to a 8 hour limit in simplsaml (see below) the upload had to be done in a few steps. The last part was done with Google Chrome which appeared to be twice as fast (8 Mbps) in this specific setup where the source file was located on a network share.

Important: default authenticated session duration is 8 hours. This will break uploads taking longer than 8 hours. Workaround, increase session.duration in the simplesaml config.php. It might be worthwhile to research a better solution (more 'intelligent' checking of authN stuff during a long upload or similar). Also the 'not authenticated' error handling might be improved.

Downloading

All downloads were done on a Windows 7 VM with around 45G free (local) disk space. Due to the size of the file the file needed to be saved to a networkshare. This will have some impact on the download-speed. For comparison also a 40GB file was up- and downloaded to local storage (where possible, see IE notes). All downloads were done using a developer build of the Flash app with a 'Test button' to force a PHP-download and circumventing Flash.

 

Browser Version OS SSL 100GB (share) 40 GB (local)
hh:mm Mbps mm:ss Mbps
IE8 Win7 + - - 27:20 (1:20:00) 200 (70)
Chrome Win7 + 4:34 50 57:51 94
FireFox Win7 + 7:15 31 56:09 97
Opera Win7 + 8:36 26 45:56 119
Safari 5.0.2 Win7 TLSv1 RC4-SHA - - 1:46:26 52

 

Browser OS Comments 100 GB 40 GB (to local storage)
IE8 Win7
- starts and downloads smoothly (between 50 Mbps and 200 Mbps approx).
- only 14 GB downloaded although IE8 reports a complete transfer of the 100GB. Cause: IE8 downloads to a temp file on the local storage and apparently stops when that partition is full. It then copies the temp file to the actual given location (in this case on a share with plenty available space). Apparently a full disk for the temp file isn't correctly handled by IE8. App note: when downloading large files with IE8 the maximum size of the file to be downloaded is determined by the available free space on the partition where the 'personal profile' of the user is stored. If you are downloading to that same partition the available space has to be at least twice the size of the file to be downloaded (due to a copy instead of a move of the tempfile). The Tempfile is stored in the 'Temporary Internet Items' folder. Its location can be changed under Tools, Internet Options, General, Browsing History Settings. Be careful to take a note/screenshot of the current location in case you want to revert back to the standard location of the 'Temporary Internet Files' folder. Note that it appears to be impossible to 'move' the Temporary Internet Items folder to a share. Given these restrictions I could not test a complete 100G download with IE8.
Start: [05/Sep/2010:11:15:44 +0200]
Stop: 5 Sep 2010 11:43:04 +0200
Total: 27:20 mm:ss
= 200 Mbps - 25 MB/s

Note that this was only the download speed, after that IE had to copy the tempfile to the final location which took a long time. According to IE total 'transfer rate' was 1 hour and 20 minutes at 8.43MB/s, including the copy to (in this case) a network share.
Google Chrome Win7 Default a file will be downloaded to default download dir without dialog, set preference to always ask for save location. File will be directly downloaded to the given location, no temporary storage or move/copy action after download. Took about 5 hours, 6 MB/s according to Chrome. Start: [03/Sep/2010:15:18:26 +0200]
Stop: 3 Sep 2010 19:52:36 +0200
Total: 4:34 hh:mm
= 50 Mbps - 6.2 MB/s
Start: [05/Sep/2010:12:40:35 +0200]
Stop: 5 Sep 2010 13:38:26 +0200
Total 57:51 mm:ss
= 94 Mbps - 11.8 MB/s
Opera Win7 Opera asks for specific location, after that it 'hangs' for a while (not responding) but recovers from the hang and starts downloading. As with Chrome to the specified location without temporary stuff. Start: [03/Sep/2010:20:11:31 +0200]
Stop: 4/sep/2010 04:47
Total 8:36 hh:mm
= 26 Mbps - 3.3 MB/s (Opera: 3513.5 KB/s)
Start: [05/Sep/2010:17:28:01 +0200]
Stop: 5 Sep 2010 18:13:57
Total: 45:56 mm:ss
= 119 Mbps - 14.9 MB/s
FireFox Win7 Default file will be downloaded to default download dir without dialog, set preference to always ask for save location. File will be directly downloaded to the given location. Start: [04/Sep/2010:07:28:50 +0200]
Stop: 4 Sep 2010 14:43:12
Total: 7:15 hh:mm
= 31 Mbps - 4 MB/s
Start: [05/Sep/2010:15:17:04 +0200]
Stop: 5 Sep 2010 16:13:13
Total: 56:09 mm:ss
= 97 Mbps - 12.2 MB/s

Safari for Windows

Win7 Testing failed, files larger than a few MB stall after the first 50 to 100 MB.  This appears to be unrelated to the download stuff and looks like some local issue (direct downloads circumventing the php stuff also fail, large downloads from other sites are OK). Might be some weird interaction between high speed and download over SSL, direct downloads without SSL are OK (and bloody fast, 380Mbps).

Other tests show that Safari also uses a temporary file when downloading (stored in the local 'user profile'). And, as with IE8, it does appear to ignore 'disk full' situations, it just goes on downloading (network traffic continues) even when zero space is available. Might be a Win7 local issue?
Disabling keepalive for Safari on the server (Apache) seems to help a bit
Start: 18/Sep/2010:20:03:46
Stop: 18 Sep 2010 21:50:12
Total: 1:46:26
52 Mbps