16. July 2009 23:49
When teams are adopting Team System Web Access, they get stuck in a known issue in Team System Web Access. It allocates a lot of memory that is not freed up. So over time you can see error messages that cannot be explained.
To improve the performance of your TSWA installation you can do the following things:
- Make sure you have installed SP1; we have fixed a very significant memory leak there.
- Create a designated app pool for TSWA application. Work item tracking consumes a lot of memory, so it is better not to share it with other applications.
- Make sure you’re sharing metadata cache by specifying WorkItemTrackingCacheRoot parameter in the config file. Not doing that will result in creating a separate full copy of the metadata cache for each connected user.
- Grant read/write permissions to the TSWA account to the HKLM\Software\Microsoft\VisualStudio\9.0 key and everywhere under it. Not having read/write access to these keys results in full metadata cache download every time new user connects to a server. That data gets thrown away because it is already in the cache in most cases.
- Configure garbage collection for the http cache. I don’t know, however, whether http cache is used in 2008 version of TSWA, but at least it won’t hurt anyway. Here’s what we’re using at Microsoft:
<cache disableMemoryCollection = "false" disableExpiration = "false" privateBytesLimit = "1000000000" percentagePhysicalMemoryUsedLimit = "60" privateBytesPollTime = "00:02:00"/>
- Disable debugging in the web.config file. Having debugging turned on caused virtual memory leaks.
- Finally, you can set the VM bytes limit to recycle the app pool to 1.9 GB; that will enable automatic recycling once the app pool consumes all available memory.