Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Nikolas van Etten 202 posts 162 karma points
    Feb 18, 2010 @ 12:37
    Nikolas van Etten
    0

    Umbraco running slow - server errors

    I've got a site where there is frequently problems with the site hanging and being generally slow. When the site hangs I need to either manually restart the app pool or touch the web.config to get it up and running again, but lately this has not helped either. I've tried cleaning up all cache, reindexing etc. but it does not seem to help much. 

    Finally got the host to check logs and they could find the following errors:

    Event id 5011 18.02.2010 10:33:35 A process serving
    application pool 'ehcd2' exceeded time limits during shut down. The process id
    was '6328'.
    http://technet.microsoft.com/en-us/library/cc735271%28WS.10%29.aspx

    Event id 5013 18.02.2010 10:36:41 A process serving
    application pool 'ehcd2' suffered a fatal communication error with the Windows
    Process Activation Servcie. The process id was '2976' The data field contains
    error number.
    http://technet.microsoft.com/en-us/library/cc735024%28WS.10%29.aspx

    The site is running on IIS 7.0 and uses it's own application pool.

    Unfortunately customer insists on using the specific host, so moving to another is not really an option.

     

    Any help regarding what might be causing this and how to fix would be highly appreciated!

  • Peter Gregory 408 posts 1614 karma points MVP 3x admin c-trib
    Feb 18, 2010 @ 12:51
    Peter Gregory
    0

    Are there any other symptoms other than a slow down in performance?   Eg how big is the lucene index directory, does it look out of the ordinary?, what is the app pool set to? is it classic? Are there any pieces of long running functionality, events, scheduled tasks etc that could not being disposed properly?

    Reason I ask about the Lucene index directory  (the dontdelete directory in the data folder) is that sometimes touching the web config etc will restart the indexer.

    Not an answer I know but hopefully will help find a reason for the slow down.


    Peter

     

  • Nikolas van Etten 202 posts 162 karma points
    Feb 18, 2010 @ 12:58
    Nikolas van Etten
    0

    I've asked the host for all details regarding the setup and will post them here asap.

    Size of the dontdelete folder is approx 125 kb, so not big at all... When I try running the reindexer and refresh it I never see that it's actually indexing, but I cannot find any errors in the umbraco log, so I'm assuming it is doing as intended anyways.

    Only events running are some events related to folder structure (adding date folders to news items), but these seem to run fine at other sites I'm running, so I don't suspect them. None are long running anyways.

  • Nikolas van Etten 202 posts 162 karma points
    Feb 18, 2010 @ 16:26
    Nikolas van Etten
    0

    According to the host these are the settings:

    Windows version: Windows Server 2008 Web
    .NET: v2.0.50727
    MSSQL: Microsoft SQL Server 2005

  • Tim 1193 posts 2675 karma points MVP 3x c-trib
    Feb 18, 2010 @ 17:48
    Tim
    0

    Is it on a shared server? If so, find out if the application pool is unique to your website, or if its shared with other sites. If it's shared, it could be another site interfering.

    Another thing to find out would be how many other sites are on the server, and how much RAM the server has.

    How many pages does your site have?

  • Neil Fenwick 86 posts 63 karma points
    Feb 18, 2010 @ 18:24
    Neil Fenwick
    0

    My guess is that if the slowdown is unexplained, it might be because the application paging RAM to disk...

    ...and if the server is over-subscribed, possibly ALL the applications will be doing this and the disk will be getting hammered.  That would be why its taking so long to shutdown.

    You might suggest to your host to check the Physical Disk performance counters and check the Physical Disk Queues... any reading that is consistently over 2 per disk is completely saturated.

  • Nikolas van Etten 202 posts 162 karma points
    Feb 19, 2010 @ 00:21
    Nikolas van Etten
    0

    It is a shared server AFAIK, but application pool is unique to this website (I prefer doing this for all Umbraco installations if the host allows it).

    Site is quite small with approx 75-100 nodes.

  • Nikolas van Etten 202 posts 162 karma points
    Feb 19, 2010 @ 07:38
    Nikolas van Etten
    0

    This morning I just checked the logs again and there were a few errors like this one:

    At /home.aspx (Referred by: ): umbraco.DataLayer.SqlHelperException: Umbraco Exception (DataLayer): SQL helper exception in ExecuteReader ---> System.InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.     at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)     at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)     at System.Data.SqlClient.SqlConnection.Open()     at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)     at umbraco.DataLayer.SqlHelpers.SqlServer.SqlServerHelper.ExecuteReader(String commandText, SqlParameter[] parameters) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\datalayer\SqlHelpers\SqlServer\SqlServerHelper.cs:line 77     at umbraco.DataLayer.SqlHelper`1.ExecuteReader(String commandText, IParameter[] parameters) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\datalayer\SqlHelper.cs:line 240     --- End of inner exception stack trace ---     at umbraco.DataLayer.SqlHelper`1.ExecuteReader(String commandText, IParameter[] parameters) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\datalayer\SqlHelper.cs:line 246     at umbraco.cms.businesslogic.web.Domain.initDomain(Int32 id)     at umbraco.cms.businesslogic.web.Domain.<GetDomains>b__0()     at umbraco.cms.businesslogic.cache.Cache.GetCacheItem[TT](String cacheKey, Object syncLock, CacheItemPriority priority, CacheItemRemovedCallback refreshAction, CacheDependency cacheDependency, TimeSpan timeout, GetCacheItemDelegate`1 getCacheItem)     at umbraco.cms.businesslogic.cache.Cache.GetCacheItem[TT](String cacheKey, Object syncLock, CacheItemPriority priority, CacheItemRemovedCallback refreshAction, TimeSpan timeout, GetCacheItemDelegate`1 getCacheItem)     at umbraco.cms.businesslogic.cache.Cache.GetCacheItem[TT](String cacheKey, Object syncLock, CacheItemRemovedCallback refreshAction, TimeSpan timeout, GetCacheItemDelegate`1 getCacheItem)     at umbraco.cms.businesslogic.cache.Cache.GetCacheItem[TT](String cacheKey, Object syncLock, TimeSpan timeout, GetCacheItemDelegate`1 getCacheItem)     at umbraco.cms.businesslogic.web.Domain.GetDomains()     at umbraco.cms.businesslogic.web.Domain.GetDomain(String DomainName)     at umbraco.cms.businesslogic.web.Domain.Exists(String DomainName)     at umbraco.requestHandler.CreateXPathQuery(String url, Boolean checkDomain)     at umbraco.requestHandler..ctor(XmlDocument _umbracoContent, String url)     at umbraco.UmbracoDefault.Page_PreInit(Object sender, EventArgs e)     at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)     at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)     at System.EventHandler.Invoke(Object sender, EventArgs e)     at System.Web.UI.Page.OnPreInit(EventArgs e)     at System.Web.UI.Page.PerformPreInit()     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  • Neil Fenwick 86 posts 63 karma points
    Feb 19, 2010 @ 11:28
    Neil Fenwick
    0

    Hi Nikolas,

    Your latest posts re-inforce my suspicion that the server is thrashing.  Some other application on the server is probably saturating it and your Umbraco site is not getting disk time quickly enough - so its timing out.

    You really want to check the disk usage, and that is probably going to show very high disk usage.  The disk usage in turn is probably a symptom of not enough memory...

  • Nikolas van Etten 202 posts 162 karma points
    Feb 23, 2010 @ 23:02
    Nikolas van Etten
    0

    Just a quick update!

    Memory and disk usage were not too bad and the app pool has free access to it.

    I added max pool size=250;min pool size=5; to web.config and also removed more or less all db calls from the xslt files (including installing Cultiv MediaCache) and it seems to work quite well now.

    Not sure which of the above did most of the trick, but as the customer seems happy now, so am I! ;)

Please Sign in or register to post replies

Write your reply to:

Draft