Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Checklist for ASP.NET / Database performance

Recently our customers started to complain about poor performance on one of our servers. This contains multiple large CMS implementations and alot small websites using Sitefinity. Our Hosting team is now trying to find the bottlenecks in our environments, since there are some major issues with loadtimes. I've been given the task to specify one big list of things to look out for, devided into different the parts (IIS, ASP.NET, Web specific). I think it'd be good to find out how many instances of the Sitecore CMS we can run on one server according to the Sitecore documentation e.d. We want to be able to monitor and find out where our bottleneck is at this point. Some of our websites load terribly slow, other websites load very fast. Most of our Sitecore implementations that run on this server have poor back-end performance, and have terrible load times after a compilation. Our Sitecore solutions run on a Win 2008 64 server with Microsoft SQL Server 2008 for db's. I understand that it might be handy to specify more detailed information about our setup, but I'm hoping we'd be able to get some usefull basic information regarding how to monitor and find bottlenecks e.d.

What tools / hints / tips & tricks do you have?

like image 270
Younes Avatar asked Jul 04 '11 14:07

Younes


2 Answers

  • do NOT use too many different asp.net pools, called and as dedicate pool in plesk. Place more sites on the same pool.
  • More memory, or stop non used programs/services on the server
  • Check if you have memory limits on the application pool that make the pool continues auto-restarts.
  • On the database, set Recovery Mode to simple.
  • Shrink database files, and reindex database, from inside the program
  • after all that Defrag your disks

Check the memory with process explorer.
To check whats starts with your server use the autoruns but be careful not to stop any critical service and the computer never starts again. Do not stop services from autoruns, use the service manager to change the type to manual. Also many sql serve services they not need to run if you never used them.

Some other tips

  • Move the temporary files / and maybe asp.net build directory to a different disk
  • Delete all files from temporary dir ( cd %temp% )

Be sure that the free physical memory is not zero, using the process exporer. If its near zero, then your server needs memory, or needs to stop non using programs from running.

To place many sites under the same pool, you need to change the permissions of the sites under the new share pool. Its not difficult, just take some time and organize to know what site runs under what pool. Now let say that you have 10 sites, its better to use 2 diferent pools, and spread the sites on this pools base on the load of each site.

like image 181
Aristos Avatar answered Sep 20 '22 01:09

Aristos


There are no immediate answer to Sitecore performance tuning. But here are some vital tips:

1) CACHING

Caching is everything. The default Sitecore cache parameters are rarely correct for any application. If you have lots of memory, you should increase the cache sizes:

http://learnsitecore.cmsuniverse.net/en/Developers/Articles/2009/07/CachingOverview.aspx

http://sitecorebasics.wordpress.com/2011/03/05/sitecore-caching/

http://blog.wojciech.org/?p=9

Unfortunately this is something the developer should be aware of when deploying an installation, not something the system admin should care about...

2) DATABASE

The database is the last bottleneck to check. I rarely touch the database. However, the DB performance can be increased with the proper settings:

Database properties that improves performance:

http://www.theclientview.net/?p=162

This article on index fragmentation is very helpful:

http://www.theclientview.net/?p=40

like image 26
Brian Pedersen Avatar answered Sep 20 '22 01:09

Brian Pedersen