SatBav
SatBav

Reputation: 73

Performance issue, Umbraco on Azure

just wondering if anyone can help me with a performance issue I'm having with my site (v7.4.3), hosted on Azure. No autoscaling, Standard. Bear with it, it's one issue, but my info is quiet a long one.

The site actually runs fairly well/fast but every now and again, and annoyingly when the client is reviewing, the pages hang, between 5-15secs, which is totally unacceptable. And when it happens, it happens for each different template page. Once it has loaded however, it runs absolutely perfectly, as you'd expect it to perform.

This is almost exactly when you first run a site on the server/it needs waking up, reloading in all of the razor views into cache, but because this happens regularly, it seems like something else, or the architecture of Azure is causing an issue.

I've even tried upgrading to the latest version, 7.6.0, but the issue remains, so I don't think it's Umbraco. As far as our code goes, I've used it on a page with a registration form, which is manually built up, and ther is a single image call. That's it, there's nothing fancy going on at all.

It think the way Azure works, the site is loaded into web worker (they may be called differently now), and occasionally, this is loaded out, and reloaded into a new web worker. I think this is what the issue is, and each time it hapens, it's a) reloading the site in, views, etc. and b) something is happening with the examine indexes, either being rebuilt, which is causing the site to load slowly, or causing a delay somewhere.

Additionally, the site is loaded ito the web worker, but essentially all the files are still being read from the file system, the examine indexes are still on the filesystem, which I think is slow to access.

To rectify some of these issues, the indexers and searchers have useTempStorage="Sync" on, so they are supposedly copied to the worker, and run locally.

we've added in this config value to speed up static file serves, which definately made static file loads faster: <serverRuntime enabled="true" frequentHitThreshold="1" frequentHitTimePeriod="00:00:20" />

The latest config app setting we've added is this: <add key="umbracoContentXMLUseLocalTemp" value="true" /> Again, this should supposedly load the content cache locally, rather than from the file system, but eve since we've done that, we've been getting regular errors that are definately connected. However, I want to believe that this is the magic value I've been looking for, but I've also read this is for a load balanced environment, I wasn't sure of Azure sort of ends up working like a load balanced environment.

Such errors consist of:

System.Exception: Cannot index queue items, the index is currently locked,, IndexSet: InternalIndexSet

Could not create index writer with snapshot policy for copying... retrying.... Exception: Lucene.Net.Store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@D:\home\site\wwwroot\App_Data\TEMP\ExamineIndexes\External\Index\write.lock: System.IO.IOException: The process cannot access the file 'D:\home\site\wwwroot\App_Data\TEMP\ExamineIndexes\External\Index\write.lock' because it is being used by another process.

Hopefully someone knows how to resolve these issues, or have come across the original issue?

Thanks in advance!

Upvotes: 0

Views: 868

Answers (1)

Strebel - MSFT
Strebel - MSFT

Reputation: 152

Are you using Azure App Service to host this site? If so, do you have "Always On" enabled in the application settings?

Upvotes: 1

Related Questions