Checklist for ASP.NET / Database performance

梦想与她 提交于 2019-12-01 04:47:51
  • 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.

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

Can't speak for Sitefinity, but will come with some tips for Sitecore.

  • Use Sitecores caching whenever possible, esp. on XSLTs (as they tend to be simpler than layouts & sublayouts and therefore Sitecore caching doesn't break them, as Sitecore caching does to asp.net postbacks), this ofc will only help if rederings & sublayouts etc are accessed a lot. use /sitecore/admin/stats.aspx?site=website to check stuff that isn't cached
  • Use Sitecores profiler, open up an item in the profiler and see which sublayouts etc are taking time
  • Only use XSLTs for the simplest content, if it get anymore complicated than and I'd go for sublayouts (asp.net controls), this is a bit biased as I'm not fond of XSLT, but experience indicates that .ascx's are faster
  • Use IIS' content expiration on the static files (prob all of /sitecore and if you have some images, javascript & CSS files) this is for IIS 6: msdn link
  • Check database access times with Sitecore Databasetest.aspx (the one for Sitecore 6 is a lot better than the simple one that works on Sitecore 5 & 6) Sitecore SDN link

And that's what I can think of from the top of my head.

Sitecore has a major flaw, its uses GUIDs for primary keys (amongst other poorly chosen data types), this fragments the table from the first insert and if you have a heavily utilised Sitecore database the fragmentation can be greater than 90% within an hour. These is not a well-designed database and recommend looking at other products until they fix this, it is causing us a major performance headache (time and money). We are at a stand still we cannot add anymore RAM cannot rebuild the indexes more often

Also, set your IIS to recycle the app_pool ONLY once a day at a specific time. I usually set mine for 3am. This way the application never goes to sleep, recycle or etc. Best to reduce spin up times.

Additionally configure IIS to 'always running' instead of 'on starup'. This way, when the application restarts, it recompiles immediately and again, is ready to roar.

Sitefinity is really a fantastic piece of software (hopefully my tips above get the thumbs up, and not my endorsement of the product). haha

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!