High Volume Usage

SA-FileUp and Physical Memory Usage

SA-FileUp is frugal in terms of memory usage. For a given upload, only approximately 64 KB of the file is in memory at any given time. This permits concurrent uploads of very large files without using significant paging resources.

SA-FileUp 3.0 adds performance monitors that let you monitor the usage and server load. See SA-FileUp Performance Monitor Counters for a list of all the available counters.

If you are using Performance Monitor to examine memory usage in IIS (inetinfo process), you may see large spikes during uploads. This is normal when there is memory available. SA-FileUp will issue many write requests to NT. NT is very efficient about using available memory to reduce physical write requests to disk. It has been our experience that NT handles large I/O requests very well.

During these spikes, you may also observe a large number of page faults per second. In this circumstance, paging is a normal occurrence. A distinction must be made between a "hard" page fault where the disk is accessed and a "soft" page fault where a process requests additional memory and it is granted immediately. A soft page fault is the normal mechanism for a process to ask for additional memory.

If you want to observe memory usage by IIS in general, or SA-FileUp in particular, the following metrics are of particular importance:

SA-FileUp has been successfully tested against concurrent uploads of more than 100 MB each and with tens of thousands of uploads per hour on a dual processor NT server machine.

Using IIS Version 4 or later

IIS 4 or later allows you to define web applications as running in the same address space as the web server ("in-process") or in a separate address space ("out-of-process"). SA-FileUp can be used in both of these scenarios successfully.

If you anticipate uploads or downloads greater than 256 KB, for performance purposes it would be advisable to keep web applications "in-process". Otherwise, there will be a significant performance penalty when marshalling large quantities of data across process boundaries.

 

Previous Page Next Page