Real world things that were done to improve the performance on a MOSS Enterprise Portal

Over the past 2 years, I've spent may days and nights trying to optimize our MOSS Enterprise Portals' performance (i.e. rendering time). In the end, the 3 biggest perf gains came from the following:

 

1. moving from x32 to x64 OS

2. moving the farm content dbs from a shared/busy SQL Backend Server to a dedicated/quieter one

3. moving from a 100 MB to 1 GB NIC connection on all of the Front end Servers

 

Although this did not solve all of our problems, it helped buy us time to perform a deeper investigation to identify what exactly was happening. For example, these were some of the problems found:

 

------

Problem: a high amount of SQL roundtrips from the Front end servers

Tool used to identify issue: SQL Profiler on the backend SQL profiler

Resolution: rewrite custom code to use more of the out of the box MOSS functionality versus extra db calls

------

Problem: caching wasn’t happening as expected on sone of the front end servers

Tool used to identify issue: Fiddler

Resolution: We turned on blob caching on the web.config file on server 1, but the changes didn’t replicate to server 2, server 3 and server 4 of the farm. We ended up manually updating the other web.config files

------

Problem: too many data connections, gifs, web parts, RSS feeds all on one page

Tool used to identify issue: Fiddler, Visual Studio 2005 - VSTT

Resolution: With fiddler, we were able to see how one page had multiple connections to other dbs, had over 10 gifs (some were actually being stored on a server on a different continent) and some RSS feeds. To fix this, we contacted the user and requested they reduce the amount of stuff put on a page.

-----

Problem: Front end Servers were under heavy load and there was a lot of blocking happening in SQL

Tool used to identify issue: Logparser

Resolution: Using Logparser, we were able to see that someone had an automated script running against the MOSS portal causing a type of denial of service attach. To fix this, we just contacted the user and let them know what they were doing to the farm.

-----