Some clients have problem with upload speed. This FAQ has a short info and performance test comparisons to reveal the problem.
Question
I just have a quick question about the ASP Upload. In the progress window, when you upload a file, under the "Time" area, we haven't seen any speeds higher than 1.5-1.6mbs, even know our internal lan connection is 100mbs. I this something that is set in the code or a limit on the script itself?
Resolution
The problem is mainly with clients. I do not know why, but I cannot cause IE to upload with meaning speed in some cases/client configurations. Next are results of my performance tests for two computers - Duron 700 with W2003 and Athlon 1.4 With W2000 connected by 100Mb/s line.
The theoretical speed limit (accept upload on server-side in ASP, HugeASP upload) for Athlon 1.4/W2000/IIS5 is around 20MB/s, Duron 700/W2003/IIS6 9MB/s (because of processor resources).
You can see that Mozilla/W2000 can upload up to 7.5MB/s to IIS6 on Duron which is almost on theoretical limit of the server. But IE has only 1.5MB/s upload speed! I need four IE 6 clients on the same configuration to have 5.5MB/s upload speed! (the red lines in the table)
The worse in reverse direction ... One IE 6 from W2003 has upload speed 50kb/s! Two 100kB/s, three 150kB/s ... I do not know why, I cannot cause IE to have greater speed ... Mozilla has 6.8MB/s on the same configuration! (blue lines)
The best performance has Mozilla locally on athlon 1.4 - last line, 8MB/s.
I also tested HugeASP upload with my special http client uploading huge amount of data over http. HugeASP upload accepts 100Mb/s stream (~10-12MB/s) on PIII/900 or equivalent processor, 8-9MB/s on Duron 700 ... But I have no real client browser which can generate such strong data stream (only the special debugging client written in VBA6 or I can generate such stream from more computers/clients).
I spent a lot of time to debug server-side performance for maximum speed (mainly on block size, IIS configuration and Binaryread calls). I mean my product is best on the market in this area :-)
| Client |
Server |
Speed [MB/s] |
Client CPU |
Server CPU |
Idle CPU |
| W2003, Duron 700 |
IE 6 |
W2000, Athlon 1.4G |
IIS 5 |
0.05 |
1% |
0% |
- |
| W2000, Athlon 1.4G |
IE 6 |
W2003, Duron 700 |
IIS6 |
1.50 |
10% |
15% |
- |
| W2003, Duron 700 |
IE 6 |
W2003, Duron 700 |
IIS6 |
2.30 |
40% |
25% |
5% |
| W2003, Duron 700 |
Mozilla 1.5 |
W2003, Duron 700 |
IIS6 |
2.30 |
33% |
25% |
5% |
| W2000, Athlon 1.4G |
2 x IE 6 |
W2003, Duron 700 |
IIS6 |
3.00 |
20% |
28% |
- |
| W2000, Athlon 1.4G |
4 x IE 6 |
W2003, Duron 700 |
IIS6 |
5.50 |
40% |
58% |
- |
| W2000, Athlon 1.4G |
IE 6 |
W2000, Athlon 1.4G |
IIS 5 |
6.00 |
20% |
25% |
52% |
| W2003, Duron 700 |
Mozilla 1.5 |
W2000, Athlon 1.4G |
IIS 5 |
6.80 |
60% |
23% |
- |
| W2003, Duron 700 |
2 x Mozilla 1.5 |
W2000, Athlon 1.4G |
IIS 5 |
6.80 |
60% |
23% |
- |
| W2000, Athlon 1.4G |
Mozilla 1.5 |
W2003, Duron 700 |
IIS6 |
7.00 |
15% |
74% |
- |
| W2000, Athlon 1.4G |
2 x Mozilla 1.5 |
W2003, Duron 700 |
IIS6 |
7.50 |
20% |
75% |
- |
| W2000, Athlon 1.4G |
Mozilla 1.5 |
W2000, Athlon 1.4G |
IIS 5 |
8.00 |
20% |
28% |
48% |
Main server-side tips for HugeASP upload to improove performance:
1. Please see
Upload - Files and forms with large/huge size., 'Upload - Files and forms with large/huge size'. Use
ASPForm.
TempPath with adequate speed. Although 5-10MB/s data stream is not problem for todays disks (they usually have 30-45MB/s write speed limit), the problem may be with fragmentation. HugeASP file upload uses standard temp and the temp folder may be fragmented, so the temp disk cannot accept upload 10MB/s data stream. There are two simple solutions - defragment the temp folder/disk or create a special partition for upload temp
2. See also
Upload - performance tests.. Use inprocess ASP environment in IIS4/5 or use IIS6 to maximize server-side performance (inprocess takes only a half of processor resources against out of process).