Checklist for ASP.NET Performance / Database

Recently, our customers started complaining about poor performance on one of our servers. This contains several large CMS implementations and small sites using Sitefinity. Our hosting team is now trying to find bottlenecks in our environment, as there are some serious problems with the download. I was given the task of indicating one large list of things to look for, divided into different parts (IIS, ASP.NET, Web-specific). I think it would be nice to know how many instances of Sitecore CMS can be run on a single server in accordance with the documentation of Sitecore ed. We want to be able to monitor and find out where our bottleneck is. Some of our sites load very slowly, other sites load very fast. Most of our Sitecore implementations that run on this server have poor performance in the background and have terrible load times after compilation. Our Sitecore solutions run on Win 2008 64 with Microsoft SQL Server 2008 for db. I understand that it would be convenient to provide more detailed information about our configuration, but I hope that we can get useful basic information on how to monitor and find bottlenecks ed

What tools / tips / tricks and tricks do you have?

+6
source share
5 answers
  • do NOT use too many different asp.net pools , also called as dedicated pools in plesk. Put more sites in the same pool.
  • More memory or stop unused programs / services on the server
  • Check if you have memory limits in the application pool that cause the pool to continue to automatically restart.
  • In the database, set Recovery Mode to simple.
  • Compressing database and reindex database files from within a program
  • after that Defragment your disks

Check the memory using the process explorer .
To check what starts from your server, use autorun , but be careful not to stop the critical service and the computer will never start again. Do not stop autorun services, use the service manager to change the type to manual. In addition, they do not need many sql services if you have never used them.

Some other tips

  • Move the temporary files / and possibly the asp.net build directory to another drive
  • Delete all files from the temporary directory (cd% temp%)

Verify that the free physical memory is nonzero using the verification process. If it is close to zero, then your server needs memory or should stop the launch of idle programs.

To place many sites under one pool, you need to change site permissions in the new pool. It's not complicated, just take some time and organize to find out which site runs under which pool. Now let's say that you have 10 sites, it is better to use 2 different pools and distribute the sites in this pool database to load each site.

+5
source

There is no direct answer to Sitecore performance tuning. But here are some important tips:

1) CACHING

Caching is everything. The default Sitecore cache settings are rarely suitable for any application. If you have a lot of memory, you should increase the size of the cache:

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 what the developer should know about when deploying the installation, and not that the system administrator should take care of it ...

2) DATABASES

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

Database properties that improve performance:

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

This article on index fragmentation is very useful:

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

+2
source

It's impossible to speak for Sitefinity, but will come with some tips for Sitecore.

  • Use Sitecores caching whenever possible, especially. on XSLT (since they are usually simpler than layouts and sublanguages, and therefore Sitecore caching does not violate them, as Sitecore caching does asp.net relaying), this file will only help if access to reders and sublanguages etc. use /sitecore/admin/stats.aspx?site=website to check files that are not cached.
  • Use the Sitecores profiler, open an item in the profiler and see which subnodes, etc. take time.
  • Use only XSLT for the simplest content if it gets more complicated than that, and I would go for subwords (asp.net controls), this is a bit biased, as I don't like XSLT, but experience shows that. ascx faster
  • Use IIS expiration for static files (for all / sitecore and if you have images, javascript and CSS files), this is for IIS 6: msdn link
  • Check database access time with Sitecore Databasetest.aspx (one for Sitecore 6 is much better than a simple one that works on Sitecore 5 and 6) Sitecore SDN link

And this is what I can think out of my head.

+1
source

Sitecore has a major flaw, it uses a GUID for primary keys (among other low-quality data types), this will fragment the table from the first insert, and if you have a heavily used Sitecore database, fragmentation can exceed 90% in an hour. This is not a well-designed database and we recommend looking at other products until they fix it, this causes us a serious headache (time and money). We stand still, we can not add more. RAM cannot rebuild indexes more often.

+1
source

Also, set IIS to reuse app_pool ONLY once a day at a specific time. I usually set mine at 3 a.m. Thus, the application never falls asleep, is not processed, etc. It’s best to shorten your U-turn

Additionally, configure IIS to always work instead of on starup. Thus, when the application restarts, it is recompiled immediately and again, ready to roar.

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

0
source

Source: https://habr.com/ru/post/891966/


All Articles