3

We are facing an issue with Tridion 2009 CME. As the TCM is getting slow very frequently. Not able to open any page/component and GUI getting irresponsive.

I have checked the logs (TCM/services logs/Event Viewer) and database logs as well but I did not found anything. I have also restarted the IIS web host for TCM GUI.

We are restarting (3-4 times a day) the COM+ and services but this also solves the problem for time being.

Please suggest areas to look into apart from these.

  • 1
    Have you checked memory consumption of the dllhost and tridion processes? Is a publisher running on that machine and is it doing a lot? Is search indexing running? – Raimond Oct 25 '13 at 9:23
  • No, publisher is running on different server and Search indexing is also not running. Yes, I have checked the memory usage as well which is not much as of now and it is becoming slow randomly for users not for any specific action. Please suggest – Anupam Baksi Oct 25 '13 at 9:35
  • 2
    Did you check with your system admin for right configuration of IIS App Pool Recycling, DCOM+ memory pooling/recycling etc and similar Administrator related stuffs? – Pankaj Gaur Oct 25 '13 at 9:39
  • Have you contacted Customer Support for available hotfixes on 2009, and have you considered upgrading to a more current release? – Bart Koopman Oct 25 '13 at 9:43
  • Hi Bart, Yes, we are planning to move to Tridion 2013 very soon. Also we have updated the SDL support and waiting for their concrete response. – Anupam Baksi Oct 25 '13 at 13:36
6

An often seen issue with SDL Tridion 2009 is that the SDL Tridion Content Manager COM+ application does not have a memory limit set and it will be using up too much memory on the server. There can be multiple causes for this, there are known memory leaks which have been solved by hotfixes, but it is also just a standard behavior of COM+ to not do a timely release of its resources which lead to high memory usage.

The only solution (besides making sure all required hotfixes are installed, contact Customer Support for the specific details) is to recycle the dllhost process when it takes up a pre-determined amount of memory.

You set this inside the Component Services -> Computers -> My Computer -> COM+ Applications properties on the Pooling & Recycling tab.

  • Set Pool Size to 1
  • Set Lifetime limit to 0
  • Set Memory Limit to 524288 (512 MB) or choose your own limit (see note below)
  • Set Call Limit to 0
  • Set Activation Limit to 0

After making these changes, be sure to restart your system (or restart all the Tridion Services).

Note

With regards to the memory limit you set it is important to understand the recycling process. Once the set memory limit is reached, the COM+ application will be recycled, this basically means the following:

  1. a new dllhost process is started for all new handles
  2. the old dllhost process stays alive till all its handles are released

Because of #2, this basically means that at the time of first recycling, you will have two process alive which can consume your configured memory limit. So at minimum your system should have double the memory of the configured limit available.

But keep in mind, that COM+ is slow in releasing handles, so it can take time and is not uncommon to see the new dllhost process reach its memory limit and thus a third process is stated (while the first two are waiting for their handles to be released).

All in all, you will have to expect the dllhost process to consume a lot of memory on a busy server. So make sure you have enough memory on the machine, or outscale and balance the load over multiple servers.

Last note, upgrading to SDL Tridion 2013 should also certainly be considered as an option to get rid of this issue.

  • "but it is also just a standard behavior of COM+ to not do a timely release of its resources which lead to high memory usage". Not true. COM+'s memory management model is probably better with regard to timeliness than that of .NET - in any case, you ought to be able to run Tridion without configuring any recycling. – Dominic Cronin Oct 25 '13 at 11:03
5

First thing I would check is memory consumption -- looking for a memory leak. Is your COM+ (dllhost.exe or dllhost3g.exe) process eating up more and more memory? Then check your code for memory leaks.

The most likely cause of memory leaks in Tridion 2009 is working with TOM.NET Interop COM+ objects in C# and not releasing them properly. They need to be demarshalled explicitly.

Have a look at http://msdn.microsoft.com/en-us/library/eaw10et3(v=vs.110).aspx in general and at Marshal.ReleaseComObject (http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.releasecomobject.aspx) in particular.

  • Also, if using Razor Mediator, make sure to get the latest 1.3.3 version. – robrtc Oct 28 '13 at 10:07
2

Could it be related with your database? How often do you update statistics on the DB?

I can't link to the Tridion 2009 documentation - because it's offline only - but the process for 2013 and Oracle is documented here and for SQL Server you should just make sure you run exec sp_updatestats regularly. I think it didn't change that much from 2009 times.

  • If the statistics aren't being updated, this shows up most clearly with where-used queries and resolving queries. Simply do a where-used, or publish->show-items-to-publish, and see how long it is before you see a list. – Dominic Cronin Oct 26 '13 at 8:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.