The default max single file upload size is 50 MB by default for a web application. Microsoft IT limits their environment at 100 MB, and the maximum that the product itself can handle or support is 2GB which is essentially a SQL limit. By setting the limit to blank will essentially support what SQL will support. It’s true that simply removing this, it doesn’t mean that a user can upload a 2GB file. The server time out settings, browser and network speed play a large part in what is truly supportable. The 50MB is the best experience, but it’s not uncommon for a large Excel file to be 60MB or an AutoCAD drawing to be 100MB for example. I recommend using 50MB – 60MB for the best user experience, but for departmental solutions working with large AutoCAD/PDF files for example could support 200-500MB on a LAN. Downloading those same files over large distances can cause a timeout.
I am listing some of the tweaks for SharePoint or WSS which can be configured for improving the performance. The following tweaks holds good for WSS 2.0, WSS 3.0, SPS 2003, MOSS 2007 though not tested personally on each of these environments. Let me know if any of this does not work on particular environment.
SharePoint WSS Optimization
This snippet from an article on Configuring Large File Support in relation to some fixes in SP2 of WSS 2.0 relate very closely with your WSS 3.0 or MOSS farm when configuring your WFEs/farm to support large files
- Increase Default WSS upload size
- Click Start, point to All Programs, point to Administrative Tools, and then click SharePoint Central Administration.
- Under Virtual Server Configuration, click Configure virtual server settings.
- On the Virtual Server List page, click the virtual server you want to change.
- On the Virtual Server Settings page, under Virtual Server Management, click Virtual server general settings.
- Under Maximum upload size, type the maximum file size (in MB) that you want to allow to be uploaded.
- Click OK.
- Tune the Microsoft Internet Information Services (IIS) connection timeout setting.
The default timeout for connections in IIS is 120 seconds (2 minutes). Depending on your maximum file size and how long it takes for the file to be uploaded, you may not need to change this setting. If, however, IIS is timing out when you upload large files, you can change this property to ensure that larger files can be uploaded successfully.
- Click Start, point to All Programs, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.
- Right-click the virtual server you want to configure, and then click Properties.
- Click the Web Site tab.
- In the Connections section, in the Connection timeout box, type the number of seconds you want IIS to wait before timing out.
- Click OK.
- Increase the default chunk size for large files.
The large-file-chunk-size property sets the amount of data that can be read from server running SQL Server at one time. If you have a file that is greater than your chunk size (such as 70 MB when the chunk size is set to 5 MB), the file would be read in 14 chunks (70 / 5). The chunk size is not related to the maximum upload file size. The chunk size simply specifies the amount of data that can be read from a file at one time. By default, the large-file-chunk-size property is set to 5 MB. If you notice performance or scale problems on the client or server, then you may need to tune this setting to get the performance you are targeting. Note that if you raise the chunk size too high, the files might use up too much front-end memory and you may need to lower this setting.
- The large–file–chunk–size property must be set from the command line. This property is configured for a server or server farm, and cannot be configured for an individual virtual server. To set this property, use the following syntax:
- After making a change to this property, you must restart IIS. You can restart IIS by typing iisreset on the command line.
- Open command prompt and change the current directory to “C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\BIN”
- Run the following command “Stsadm.exe –o setproperty –prorertyname large–file–chunk–size –pv <size in bytes>”
- Increase the maximum size limit for Web Parts.
By default, the maximum size limit for a Web Part is 1 MB. If you need to accommodate large Web Parts, you can change this setting in the web.config file for your server or servers running Windows SharePoint Services.
- On your server computer running Windows SharePoint Services, open Notepad.
- In Notepad, navigate to the %HomeDrive%\Inetpub\wwwroot folder and open the web.config file.
- Locate the PropertySize attribute in the configuration\SharePoint\WebPartLimits element.
- Change the PropertySize attribute to the maximum size you need.
- Save and close the web.config file.
- Add the executionTimeout value
Use Notepad to open the Web.config file. By default, this file is in the following location:
Program Files\Common Files\Microsoft Shared\Web server extensions\12\TEMPLATE\LAYOUTS
Add the executionTimeout value that you want. For example, replace the value as follows.
<httpRuntime maxRequestLength=”2097151″ />
<httpRuntime executionTimeout=”999999″ maxRequestLength=”2097151″ />
- After you change the file, click Save on the File menu.
- Use Notepad to open the Web application Web.config file. By default, this file is in the following folder: Inetpub\wwwroot\wss\VirtualDirectories\VirtualDirectoryFolder
- Change the following line in the file
<httpRuntime maxRequestLength=”51200″ />
<httpRuntime executionTimeout=”999999″ maxRequestLength=”51200″ />
- After you change the file, click Save on the File menu. Exit Notepad.
- Setting HTTP Compression on IIS
HTTP Compression is a feature of IIS v6. By default, this feature is not turned on. For general information on HTTP compression, the following document is extremely helpful Microsoft TechNet: Using HTTP Compression (IIS 6.0). Keep in mind that SharePoint renders both static and dynamic files. Nearly all files rendered from “_layouts” and “_vti_bin” virtual directories are static; however, there are some aspx and asmx pages which exist in those directories. All files from the root are considered dynamic because content is either served up by either aspx pages or owssvr.dll. Therefore, when enabling HTTP compression you have the opportunity to utilize both static and dynamic compression. Detailed articles can be found on the following site Using HTTP compression with SharePoint and IIS Compression, WSS v2 and PDFs
Updating the OS, WSS and SQL software for current service packs and hotfixes may improve the performance and fix some issues not directly related to large file support. And as always its always recommended to test all the Service Packs and hotfixes on Staging environment before applying it to the production. Always have a back-out plan if things break on production.
Following are the current service pack which are latest release at time of writing this report
- WSS : Service Pack 3 ( Download | Details )
- SQL Server 2000 : Service Pack 4 ( Download | Details )
- Windows Server 2003 : Service Pack 2 ( Download | Details )
Optimizing the resources on OS like RAM, Paging File and Disk Defragmenting on regular intervals
- Suggested Minimum RAM is 2GB, but 3-4 GB would has room enough for handling peak time requests
- Minimum page file should be double that of allotted RAM and maximum should be three times the allotted RAM
- Defragmenting the disk at regular interval will boost the performance. Also make sure that the SQL Database growth parameters are optimally tuned to reduce the disk defragmentation.
SQL Server 2005 have better performance when used with SPS 2003/WSS 2.0, upgrading from 2000 will benefit the throughput. The following report from Microsoft show the Performance Test Results of SQL 2000 and 2005 when used with SPS 2003 SP2. This should hold true even for WSS 2.0 SP2.
Appendix: SQL Server Performance Test Results
As per the report Small farm will have performance improvement by 29% when used with SQL 2005