Umbraco 7.3 on Azure Windows Server 2012 VM is Extremely Slow
Hi All
I've currently got a VM setup on Azure which hosts our Umbraco application. The application is medium to large in size. We're also running the database on the same server.
Basic Server Specs:
Processor: Xeon CPU E5-2673 v3 @2.40 GHz
RAM: 7GB
I'd assume these are perfectly fine specifications to run two IIS sites on (one is the live environment, the other is test).
When I deploy a new release through Octopus, it obviously has to rebuild all the indexes and temporary data. The problem is, mostly it is extremely slow to load, we're talking 3-4 minutes for the initial load, then for each request after that it takes about 2 minutes.
I've seen a lot to do with useTempStorage however Sync and LocalOnly have no avail.
What's worst is that the problem is inconsistent, sometimes the server speeds up and loads within milliseconds, but then it has its bad spells where it takes minutes.
I'm pretty sure it isn't the code, as to confuse matters we have another test environment on our local physical Windows 2012 server which runs (and always has) fine.
Umbraco.Core.Sync.DatabaseServerMessenger: ERROR - DISTRIBUTED CACHE IS NOT UPDATED. Failed to execute instructions (16533: "[{"RefreshType":4,"RefresherId":"b29286dd-2d40-4ddb-b325-681226589fec","GuidId":"00000000-0000-0000-0000-000000000000","IntId":0,"JsonIds":null,"JsonPayload":"[{\"Path\":\"-1,10118,10138,10161,12838,14726,14732\",\"Id\":14732,\"Operation\":1}]"}]"). Instruction is being skipped/ignored Lucene.Net.Store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@<MySite>\App_Data\TEMP\ExamineIndexes\SG-EU-WEB01\External\Index\write.lock: System.IO.IOException: The process cannot access the file '<MySite>\App_Data\TEMP\ExamineIndexes\SG-EU-WEB01\External\Index\write.lock' because it is being used by another process. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at Lucene.Net.Store.NativeFSLock.Obtain() ---> System.IO.IOException: The process cannot access the file '<MySite>\App_Data\TEMP\ExamineIndexes\SG-EU-WEB01\External\Index\write.lock' because it is being used by another process. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at Lucene.Net.Store.NativeFSLock.Obtain() --- End of inner exception stack trace --- at Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout) at Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean create, Boolean closeDir, IndexDeletionPolicy deletionPolicy, Boolean autoCommit, Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit) at Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a, Boolean create, MaxFieldLength mfl) at Examine.LuceneEngine.Providers.LuceneIndexer.CreateIndexWriter() in x:\Projects\Examine\Examine\Projects\Examine\LuceneEngine\Providers\LuceneIndexer.cs:line 1670 at Examine.LuceneEngine.Providers.LuceneIndexer.GetIndexWriter() in x:\Projects\Examine\Examine\Projects\Examine\LuceneEngine\Providers\LuceneIndexer.cs:line 1689 at Examine.LuceneEngine.Providers.LuceneIndexer.get_InternalSearcher() in x:\Projects\Examine\Examine\Projects\Examine\LuceneEngine\Providers\LuceneIndexer.cs:line 336 at UmbracoExamine.BaseUmbracoIndexer.get_InternalSearcher() at UmbracoExamine.UmbracoContentIndexer.DeleteFromIndex(String nodeId) at Examine.ExamineManager._DeleteFromIndex(String nodeId, IEnumerable`1 providers) in x:\Projects\Examine\Examine\Projects\Examine\ExamineManager.cs:line 214 at Umbraco.Web.Search.ExamineEvents.DeleteIndexForEntity(Int32 entityId, Boolean keepIfUnpublished) at Umbraco.Web.Search.ExamineEvents.MediaCacheRefresherCacheUpdated(MediaCacheRefresher sender, CacheRefresherEventArgs e) at Umbraco.Core.Sync.DatabaseServerMessenger.NotifyRefreshers(IEnumerable`1 jsonArray) at Umbraco.Core.Sync.DatabaseServerMessenger.ProcessDatabaseInstructions()
UmbracoExamine.DataServices.UmbracoLogService: ERROR - Provider=InternalIndexer, NodeId=-1 System.Exception: Cannot index queue items, the index is currently locked,, IndexSet: InternalIndexSet
And finally this, which I think may be expected due to the way our migrations are set up:
Umbraco.Core.PluginManager: ERROR - Error creating type Umbraco.Tests.Persistence.Migrations.MigrationStartupHandlerTests+TestMigrationHandler System.MissingMethodException: No parameterless constructor defined for this object. at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.Activator.CreateInstance(Type type) at Umbraco.Core.ServiceProviderExtensions.CreateInstances[T](IServiceProvider serviceProvider, IEnumerable`1 types, ILogger logger, Boolean throwException)
Umbraco 7.3 on Azure Windows Server 2012 VM is Extremely Slow
Hi All
I've currently got a VM setup on Azure which hosts our Umbraco application. The application is medium to large in size. We're also running the database on the same server.
Basic Server Specs: Processor: Xeon CPU E5-2673 v3 @2.40 GHz RAM: 7GB
I'd assume these are perfectly fine specifications to run two IIS sites on (one is the live environment, the other is test).
When I deploy a new release through Octopus, it obviously has to rebuild all the indexes and temporary data. The problem is, mostly it is extremely slow to load, we're talking 3-4 minutes for the initial load, then for each request after that it takes about 2 minutes.
I've seen a lot to do with
useTempStorage
however Sync and LocalOnly have no avail.What's worst is that the problem is inconsistent, sometimes the server speeds up and loads within milliseconds, but then it has its bad spells where it takes minutes.
I'm pretty sure it isn't the code, as to confuse matters we have another test environment on our local physical Windows 2012 server which runs (and always has) fine.
I'll post any updates.
Any help would be greatly appreciated.
I'm getting a few errors:
And finally this, which I think may be expected due to the way our migrations are set up:
This issue is resolved. I upgraded to Umbraco 7.5.11 and it has had no issues since.
is working on a reply...
This forum is in read-only mode while we transition to the new forum.
You can continue this topic on the new forum by tapping the "Continue discussion" link below.