eCM performance tweaks

I was recently asked to provide some guidelines or practical feedback on how to get the most performance out of e-CM as possible. First of all, e-CM has gone through many changes and performance enhancements over the years. It has been well optimized for performance.

That being said the following are 3 main things (from least to most important) that someone setting up e-CM can do to maximize its performance:

  1. CMScheduledTasks: When setting up e-CM, you are prompted whether or not you want to schedule the automated content management tasks on the server. I would recommend having the system set this up for you. It will be set up to run every day at 2AM in the morning. This is an optimal time to have this run since there will be less traffic on the site. But if you have some other nightly processes that are run on your server, you might need to change this schedule. You can really cause problems though for your web site if you move this schedule during regular business hours or accidently change it from daily to occuring every X hours or minutes. So if the performance suffers at the same time most days, check to see if this task has been rescheduled.
  2. SEVerityExePath: When the e-CM setup wizard is run, the system puts in a generally correct default value for the SEVerityExePath application variable. However, if you did a non-standard installation of ColdFusion, then this variable might not be correct. If this value is wrong, it will can cause hangups and slowdowns of the ColdFusion engine. You will know it is not correct if you cannot get any results from the e-CM search, and if the /Collection/Reindex.out file is empty. You willl find this variable in the Site Maintenance > Web Site Search > Configuration Settings. Update this value, reset the application variables, and try to reindex the search collections.
  3. TPCachedPageResetMinute: This tagged page application variable is used to determine how long the system should store the results of a tagged page display in server memory. By storing this in memory, the system cuts down significantly the amount of time it takes to render each subsequent page display after the first time it is processed. By default, this value is set for 1440 minutes, which means a tagged page will be stored in memory for 24 hours after the first time the page is called and rendered. This means at each following call to the tagged page pulls from memory and does not try to process the page or update the data. We often find clients who set this value to 1 (one minute) because they want their content changes to appear immediately on a tagged page. This basically means that each time a user hits a tagged page, they are likely going to have to wait for that page to be completely regenerated from the database, etc. Each client has to strike a balance between immediacy of content changes AND having data cached. The longer the cache, the better performance one will get from the system. So we always recommend this be set as high as possible. Also, it is possible to flush this cache manually, if there is content that needs to be updated immediately. Simply go to Website > Tagged Pages > Clear Cached Pages. This will clear all the tagged pages from memory, but this is a better option than setting the cache low in the unlikely chance the content on a tagged page needs to be refreshed immediately. This variable can be found under Site Maintenance > Content Tagging > Configuration Settings.

These 3 issues are some of the main problems we run into with clients who are experiencing slow performance of e-CM. Tweaking or checking these settings can lead to a cleaner running system.

Of course, there are many other issues that might be causing poor performance not at all related to e-CM. I will examine some of our recommendations for ColdFusion, IIS and hardware configurations that can help get the most out of e-CM.

As always, comments or criticism on this posting is welcome.

Beau

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I've heard there are some

I've heard there are some choices about how pages get published. That is in some cases pages generate directly to html and thus are served back up directly from the server, and in other cases, pages must be generated (and perhaps cached) but still processed to some degree every time.

What determines which the route that's taken and are there choices that can be made to get a better result?

eCM publishing options

I am not aware of any configuration settings that you can make externally to affect how e-CM handles publishing content. HTML and document records (i.e. PDFs, Word, Excel, etc) are all published as static files whenever possible. It is always looking to try to generate a static file in order to off-load as much of the work as possible to IIS instead of ColdFusion. Tagged pages however are always dynamic, at least to the extent that they are not published as static HTML. All tagged page calls go through ColdFusion. Now if they have been cached properly as I noted above, then ColdFusion will simply serve back the page from memory, which is a quick process.

My recommendation is to always call a page by its static publish path, if there is one. Calling a page by a dynamic link, such as one include a ContentID=XXX will put more work onto ColdFusion.

I have seen clients use tagged pages to display a single content record. This is not good practice. It is always best to use the system as it was intended, which is that tagged pages are for dynamic content that needs to be pulled from different sources (i.e. multiple content folders) whereas published static content is for single records. This is not even really a concern about the system as such, but more along the line of best practices. Why would you force something to be dynamic when it could just as easily be static?

Maybe Rob or Eri can weigh in if I missed something, which is certainly possible.

Beau A.C. Harbin
Consulting Manager
Advanced Solutions International