4

We are using the Tridion ASP.NET Web application for our website. Every time we publish the content the CPU usage of the server goes very high. After checking we found it is the IIS worker process related to the web application goes high with every new content as it tries to compile.

The web application is a mix of static and dynamic content (ASCX and REL). We are not sure which causes the high CPU. There are almost 25-30 websites which are grouped in to two application pools.

We found the issue after the web application based on Tridion 2011 was migrated to SDL Web 8.5. Also the operating system was upgraded from Windows Server 2008 to Windows Server 2012 R2.

Can anyone help here to resolve the issue, if we are missing any specific configuration related to the web hosting.

  • Changing files in the file system with IIS forces a recompilation of the web app. Are you publishing files to file system, or using a model like DXA and DD4T? – Nuno Linhares Feb 6 '18 at 20:22
  • @NunoLinhares : Yes we are publishing files to file system. – Manas.p Feb 7 '18 at 7:33
6

I think what Nuno says is correct. Changing a number of ascx or aspx files would cause a recompile. I think this is especially true if the ascx contains inline .NET code.

Like Bart says, using a framework like DXA solves this problem, but I also understand it's not easy to quickly move your existing webapp with all custom functionality to a DXA webapp.

One of the quick wins I can see is only to use REL dcps that are published to the broker database. This does mean that you would need to write REL code for any custom server side logic in your DCP. Luckily, standard things like link resolving,... are already handled out of the box.

If your DCP doesn't need any server side logic, you could switch to a html dcp instead of an ascx dcp, which can also be published to a database.

I also think it would be better to have a separate app pool per website (you mention you now have two app pools, each hosting around 15 websites). This means that, if the app pool is recycled because something changed on 1 website, the 14 other websites running under that same app pool will also be impacted by that recycle. The downside to this is off course that each app pool will consume memory, so your server would require more RAM.

  • Thanks Harald for the input.We can consider changing the ascx CTs to other format. – Manas.p Feb 7 '18 at 15:55
3

You mention: "we are using the Tridion ASP.NET Web application" but actually there is no such thing.

What you are doing is publishing ASPX pages, which as Nuno already mentions in his comment, will trigger a recompilation of the web app. That is what is causing this high CPU usage whenever you publish. This is because all your ASPX pages are considered a web application by IIS and that is not designed to deal with updating single ASPX pages. The reasoning why you didn't see it before is most likely related to the version of the OS and IIS, remember high CPU usage actually indicates a maximum use of resources.

To fix this issue you should not publish ASPX pages, but actually deploy a web application and have it use published content only. Specifically for that we have released DXA, see:

There is a new release of DXA (version 2.0) coming up this month, so keep an eye out for that.

  • Yes Bart, you got the right scenario. We can use DXA , but for the newer web application. For now we are concerned about the existing solutions. – Manas.p Feb 7 '18 at 12:37

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.