Home > TABS Upload

TABS Upload
 Key Features
   Upload Component
   TABSFileup ActiveX
 Performance Test
 Comparision
 Upload Demo
 Requirements
 2.1 Update
 Download
 Tech Support
 Registration
 Free License Key
 Purchase
  Performance Test

In this section we have compared upload components that have similar features. We selected SAFileUp and ABCUpload as the counterparts for comparison and the detailed versions of them are shown in the following table.

Product Version
TABS Upload 1.5
SoftArtisans FileUp 4.02
ABCUpload 4.6

  The Tests

We used uptester utility to generate the load and measured the performance results. Because it is hard to simulate that many web browsers are uploading files simultaneously into a web server, we made the uptester utility. It creates multiple connections to the web server and transfers a file through HTTP every connection. It will generate the performance results that represent elapsed time for each upload and average uploading time.

The uptester utility is included in the setup file of the TABS Upload and you can easily use it as the following syntax.

    D:\Temp>uptester.exe
    Usage: uptester -s Server -u URL -f File [-t nThread] [-i nIteration]
        -s Server      server IP address
        -u URL         relative URL for upload page
        -f File        upload file name
        -t nThread     the number of upload threads(max: 16, default: 1)
        -i nIteration  the number of upload iteration(default: 1)
    Example: uptester -s 192.168.1.2 -u /sample/upload.asp -f sample.zip -t 4 -i 2
	

The uptester is going to submit a form including a text input element and a file input element. The action attribute is replaced by the URL specified by -u option and the file specified by -f option is transferred to the web server.

<form method="POST" enctype="multipart/form-data" action="">
    <input type="text" name="userName" value="khkim">
    <input type="file" name="uploadFile">
</form>

The following code fragment processes the uploading data for test. SAFileUp and ABCUpload also have similar upload pages.

<%@ Language=VBScript EnableSessionState="False" %>
<html>
<head>
    <title>Uploading file</title>
</head>
<body>
<%
Dim Upload
Set Upload = Server.CreateObject("TABS.Upload")
Upload.Start "C:\TEMP"
Upload.Save
%>
</body>
</html>

The test platform consisted of the following hardware. All upload components were installed respectively. Click here to show the test result sheet.

  • One Compaq ProLiant DL360 web server (two 1GHz Pentium III XEON processors with 256 KB L2 cache, 512 megabytes RAM); the server was configured with 100 megabit network card
  Upload a file of 304K using 16 threads

It was tested to transfer a file of 304 KB after the uptester utility connecting to the web server simultaneously using 16 threads. In the following table, the value of time range contains elapsed time completing the uploading from the first thread to the last thread. The value of avg time represents average elapsed time to complete all uploads and the unit of elapsed time is millisecond.

TABS Upload SAFileUp ABCUpload
time range avg time time range avg time time range avg time
265~485 428.69 687~1672 1038.00 641~922 734.13


Fig. 1 Elapsed time to complete uploading

  Upload a file of 21 MB using 8 threads

This time, we tested to use a file of 21 MB using 8 threads. The number of megabytes received by the web server is about 168 MB. The following table contains values of time range and average time as the previous results.

TABS Upload SAFileUp ABCUpload
time range avg time time range avg time time range avg time
11625~16984 14785.13 33203~34656 34093.50 40609~47593 45743.88


Fig. 2 Elapsed time to complete uploading

The Fig. 3 shows elpased times per upload thread from the the test result sheet.


Fig. 3 Elapsed time per thread

TABS Upload was two or three times faster than SAFileUp and ABCUpload. To compare in detail, we recorded web server's performance counters such as CPU usage, disk write bytes per sec, and disk queue length. As the IIS takes charge of HTTP communication entirely for uploading, all components have the same condition about network bandwidth. Because all upload component use the same technology - calling Request.BinaryRead method repeatedly to receive - no additional memory is required, therefore, we did not measure memory usage.

The most important thing for best performance in uploading can be summarized as how fast the upload component can parse MIME data received from the browser and how much it can minimize disk I/O occurred when the upload file is saved into disk. The CPU usage of performance counters means speed of parsing MIME data and the disk write bytes and disk queue length represents the amount of disk I/O consumed by saving files. If the disk drive has a sustained load, the value of disk queue length will be consistently high. This value should average less than 2 for good performance. If the value is more than 2 then the disk is very busy and the web server might not respond to the browser's request.

The red triangle shown in the figures of performance counter indicates the position in which to finish uploading.


TABS Upload
 

SAFileUp
 

ABCUpload

The range of CPU usages of TABS Upload were very short compared with other components. This means that the one-pass parsing algorithm is faster than competitors' that parses uploaded MIME data. Moreover, the value of disk queue length was lower than other components', TABS Upload occurred no more than disk I/O that it received. It results from buffering technology optimized for NTFS.

Compared with TABS Upload and SAFileUp, ABCUpload showed that the value of disk queue length was very high and had serious variation. It means that the number of requests that are queued and wait for being processed is so many that the disk might be a bottleneck.

  Upload a file of 134 MB using 1 thread

For a very large file, we tested to use a file of 134 MB using 1 thread. As shown in the figure below, TABS Upload was more than two times as fast as SAFileUp and ABCUpload.

TABS Upload SAFileUp ABCUpload
12047 27047 25875


Fig 4 Elapsed time to complete uploading

Performance of uploading is highly important consideration when considering choosing an upload component because the uploading process in the web server causes heavy network traffic, high CPU usage, and heavy disk write. TABS Upload will meet this environment.

About TABS   Privacy Policy
© 2003-2004 TABS LABORATORIES CORPORATION. All rights reserved.