We have an Umbraco site running on Umbraco 4.11.9 and we are having an issue in that as soon as the site receives any sort of higher load then the W3WPC process maxes out at 100% and the site then becomes unresponsive and only doing an IISRESET sorts the problem out.
I am using a website called Blitz to perform load testing and have this linked to New Relic for analysing server statistics. We have tried copies of the site on two completely separate servers and the issue is the same as soon as we try to put any load on it.
I cannot see anything in the code that would be causing any sort of issues and have implemented Macro and Page caching but the problem still happens.
Has anyone experienced any similar issues before and/or does anyone have any ideas what sorts of things I should be looking for or any methods I should put in place to try and find the source of the issues. I have enabled the trace but there are no obvious Macros taking time to load.
For your reference the site has been tested on Windows Server 2008 with both SQL Server 2008 R2 Express and SQL Server 2008 R2 Web editions.
UPDATE: I have just tried installing a starter kit version of Umbraco 4.11.9 using one of the pre-defined skins and am experiencing a similar issue, the pattern I am using in Blitz is 1-500 users across 60 seconds. Any ideas?
I've had similar problems like this with a Umbraco 4.9 website. The problem was that even though we had some caching there were pages which were still pretty heavy. After examining the code better I found out that a page did a lot of sql calls which made it real slow. In my case it was someone using the Member API which uses a lot of direct db calls.
The website does have a fair number of Macros especially on the homepage, however when checking the services it is the W3PWC process which maxes out at 100% whereas the SQL service stays pretty steady and never goes over around 40% CPU usage. I have used DebugDiag to check the CPU threads when the 100% is hit and it seems that the following threads are causing the most CPU usage:
The two Macros that seem to be taking up the most CPU are the Top Navigation and Home News Listing macros, however I am unable to add Page caching onto these macros as the site is multi-lingual and as soon as I cache these macros then the different languages are not displayed when choosing a new language from the language drop down. These macros although intensive in the number of loops they perform, they are relatively straight-forward and I can't see an obvious way of optimising these much further whilst keeping the functionality that they currently perform.
Does anyone have any further ideas as to how best to optimise an Umbraco site, the ideas I have come up with so far are as follows:
1) Install Fast Cache package to enable Output Caching 2) Install Asset Compressor package to minify CSS/JS files 3) Run SQL script to clear out old document versions from DB 4) Cache the umbraco_client folder using IIS HTTP headers What further optimisations can be done in Umbraco, IIS and SQL?
Speed Issues and 100% CPU Usage
We have an Umbraco site running on Umbraco 4.11.9 and we are having an issue in that as soon as the site receives any sort of higher load then the W3WPC process maxes out at 100% and the site then becomes unresponsive and only doing an IISRESET sorts the problem out.
I am using a website called Blitz to perform load testing and have this linked to New Relic for analysing server statistics. We have tried copies of the site on two completely separate servers and the issue is the same as soon as we try to put any load on it.
I cannot see anything in the code that would be causing any sort of issues and have implemented Macro and Page caching but the problem still happens.
Has anyone experienced any similar issues before and/or does anyone have any ideas what sorts of things I should be looking for or any methods I should put in place to try and find the source of the issues. I have enabled the trace but there are no obvious Macros taking time to load.
For your reference the site has been tested on Windows Server 2008 with both SQL Server 2008 R2 Express and SQL Server 2008 R2 Web editions.
UPDATE: I have just tried installing a starter kit version of Umbraco 4.11.9 using one of the pre-defined skins and am experiencing a similar issue, the pattern I am using in Blitz is 1-500 users across 60 seconds. Any ideas?
Hello,
I've had similar problems like this with a Umbraco 4.9 website. The problem was that even though we had some caching there were pages which were still pretty heavy. After examining the code better I found out that a page did a lot of sql calls which made it real slow. In my case it was someone using the Member API which uses a lot of direct db calls.
Maybe these topics can also help:
http://our.umbraco.org/forum/getting-started/installing-umbraco/20999-Disable-Lucene-Examine#comment138880
http://our.umbraco.org/forum/developers/api-questions/37022-Publishing-with-API-is-slow
Jeroen
The website does have a fair number of Macros especially on the homepage, however when checking the services it is the W3PWC process which maxes out at 100% whereas the SQL service stays pretty steady and never goes over around 40% CPU usage. I have used DebugDiag to check the CPU threads when the 100% is hit and it seems that the following threads are causing the most CPU usage:
umbraco.NodeFactory.Node.initialize()
umbraco.NodeFactory.Node.get_ChildrenAsList()
umbraco.MacroEngines.DynamicBackingItem.get_ChildrenAsList()
umbraco.MacroEngines.DynamicNode.b__47(umbraco.MacroEngines.DynamicBackingItem)
umbraco.macro.loadMacroScript(umbraco.cms.businesslogic.macro.MacroModel)
umbraco.macro.renderMacro(System.Collections.Hashtable, Int32)
umbraco.presentation.templateControls.Macro.CreateChildControls()
The two Macros that seem to be taking up the most CPU are the Top Navigation and Home News Listing macros, however I am unable to add Page caching onto these macros as the site is multi-lingual and as soon as I cache these macros then the different languages are not displayed when choosing a new language from the language drop down. These macros although intensive in the number of loops they perform, they are relatively straight-forward and I can't see an obvious way of optimising these much further whilst keeping the functionality that they currently perform.
Does anyone have any further ideas as to how best to optimise an Umbraco site, the ideas I have come up with so far are as follows:
1) Install Fast Cache package to enable Output Caching
2) Install Asset Compressor package to minify CSS/JS files
3) Run SQL script to clear out old document versions from DB
4) Cache the umbraco_client folder using IIS HTTP headers What further optimisations can be done in Umbraco, IIS and SQL?
If the top navigation is the slowest it might be good to read this topic: http://our.umbraco.org/forum/developers/razor/28479-Razor-menu-performance-(v4)
The solution is to rewrite the navigation so it doesn't use anything dynamic anymore because that is really slow: http://our.umbraco.org/forum/developers/razor/28479-Razor-menu-performance-(v4)?p=3#comment108221
Jeroen
is working on a reply...