2GB memory usage by Orchard production site

Topics: General, Troubleshooting, Writing modules
Jul 5, 2013 at 10:39 AM
Hi guys,

I am at a bit of a loss. We have recently upgraded a 1.3 orchard site to 1.6 and are currently testing the site on the production server.

The site has a very large set of data - 225,000 content items. The majority of this is blog posts. There are 5 blogs, where one blogs have in excess of 10,000 blog posts.

I am seeing very high memory usage - varies from 1GB to 2GB. And the site is very very slow. I have no extra caching turned on.

I am wondering if anyone could recommend some Orchard specific steps to try and diagnose as to why there is so much memory usage and the site is so slow?

Here is the output of the log file after the restart of the app pool and the memory is up to 1.5GB :
2013-07-05 10:12:31,041 [6] Orchard.Environment.Extensions.ExtensionLoaderCoordinator - No loader found for extension "CommercialMotor.RelatedArticlesPart"!
2013-07-05 10:12:31,541 [14] Orchard.Environment.Extensions.ExtensionManager - No suitable loader found for extension "CommercialMotor.RelatedArticlesPart"
2013-07-05 10:13:15,820 [10] Orchard.Environment.Extensions.ExtensionLoaderCoordinator - No loader found for extension "CommercialMotor.RelatedArticlesPart"!
2013-07-05 10:13:16,320 [12] Orchard.Environment.Extensions.ExtensionManager - No suitable loader found for extension "CommercialMotor.RelatedArticlesPart"
2013-07-05 10:32:50,336 [19] NHibernate.Util.ADOExceptionReporter - System.Threading.ThreadAbortException: Thread was being aborted.
   at System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day)
   at System.DateTime..ctor(Int32 year, Int32 month, Int32 day, Int32 hour, Int32 minute, Int32 second, Int32 millisecond)
   at System.TimeZoneInfo.TransitionTimeToDateTime(Int32 year, TransitionTime transitionTime)
   at System.TimeZoneInfo.GetDaylightTime(Int32 year, AdjustmentRule rule)
   at System.TimeZoneInfo.GetIsDaylightSavingsFromUtc(DateTime time, Int32 Year, TimeSpan utc, AdjustmentRule rule, Boolean& isAmbiguousLocalDst)
   at System.TimeZoneInfo.GetDateTimeNowUtcOffsetFromUtc(DateTime time, Boolean& isAmbiguousLocalDst)
   at System.DateTime.get_Now()
   at NHibernate.Cache.Timestamper.Next()
   at NHibernate.Cache.ReadWriteCache.Put(CacheKey key, Object value, Int64 txTimestamp, Object version, IComparer versionComparator, Boolean minimalPut)
   at NHibernate.Engine.TwoPhaseLoad.InitializeEntity(Object entity, Boolean readOnly, ISessionImplementor session, PreLoadEvent preLoadEvent, PostLoadEvent postLoadEvent)
   at NHibernate.Loader.Loader.InitializeEntitiesAndCollections(IList hydratedObjects, Object resultSetId, ISessionImplementor session, Boolean readOnly)
   at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
   at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
   at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)
2013-07-05 10:32:50,383 [19] NHibernate.Util.ADOExceptionReporter - Thread was being aborted.
2013-07-05 10:32:50,383 [19] NHibernate.Util.ADOExceptionReporter - System.Threading.ThreadAbortException: Thread was being aborted.
   at System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day)
   at System.DateTime..ctor(Int32 year, Int32 month, Int32 day, Int32 hour, Int32 minute, Int32 second, Int32 millisecond)
   at System.TimeZoneInfo.TransitionTimeToDateTime(Int32 year, TransitionTime transitionTime)
   at System.TimeZoneInfo.GetDaylightTime(Int32 year, AdjustmentRule rule)
   at System.TimeZoneInfo.GetIsDaylightSavingsFromUtc(DateTime time, Int32 Year, TimeSpan utc, AdjustmentRule rule, Boolean& isAmbiguousLocalDst)
   at System.TimeZoneInfo.GetDateTimeNowUtcOffsetFromUtc(DateTime time, Boolean& isAmbiguousLocalDst)
   at System.DateTime.get_Now()
   at NHibernate.Cache.Timestamper.Next()
   at NHibernate.Cache.ReadWriteCache.Put(CacheKey key, Object value, Int64 txTimestamp, Object version, IComparer versionComparator, Boolean mi
Coordinator
Jul 6, 2013 at 3:09 AM
You obviously have one or several buggy modules that are leaking memory. Attach a profiler and find out who's the pig.