0

只是想知道是否有人可以帮助我解决托管在 Azure 上的网站(v7.4.3)的性能问题。没有自动缩放,标准。忍受它,这是一个问题,但我的信息很长。

该网站实际上运行得相当好/很快,但时不时地,并且令人讨厌的是,当客户审查时,页面挂起,在 5-15 秒之间,这是完全不可接受的。当它发生时,它会发生在每个不同的模板页面上。然而,一旦它加载完毕,它就会运行得非常完美,正如您所期望的那样。

这几乎正​​是您第一次在服务器上运行站点时/它需要唤醒,将所有剃刀视图重新加载到缓存中,但由于这种情况经常发生,它似乎是别的东西,或者 Azure 的体系结构导致了问题.

我什至尝试升级到最新版本 7.6.0,但问题仍然存在,所以我认为不是 Umbraco。就我们的代码而言,我在带有注册表单的页面上使用了它,该注册表单是手动构建的,并且只有一个图像调用。就是这样,根本没有什么花哨的事情发生。

它认为 Azure 的工作方式是将站点加载到 web worker 中(它们现在可能被称为不同的名称),偶尔会被加载出来,然后重新加载到新的 web worker 中。我认为这就是问题所在,每次发生时,都是 a) 重新加载站点、视图等,b) 检查索引发生了一些事情,要么正在重建,这导致站点加载缓慢,或在某处造成延迟。

此外,该站点已加载到 Web Worker,但基本上所有文件仍在从文件系统中读取,检查索引仍在文件系统上,我认为访问速度很慢。

为了纠正其中一些问题,索引器和搜索器已经useTempStorage="Sync"打开,因此它们应该被复制到工作人员,并在本地运行。

我们在此配置值中添加了加速静态文件服务,这无疑使静态文件加载更快: <serverRuntime enabled="true" frequentHitThreshold="1" frequentHitTimePeriod="00:00:20" />

我们添加的最新配置应用程序设置是这样的:<add key="umbracoContentXMLUseLocalTemp" value="true" /> 同样,这应该在本地加载内容缓存,而不是从文件系统中加载,但是在我们这样做之前,我们已经收到了肯定连接的常规错误. 但是,我想相信这是我一直在寻找的神奇价值,但我也读过这是针对负载平衡环境的,我不确定 Azure 最终会像负载平衡环境一样工作.

此类错误包括:

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.

希望有人知道如何解决这些问题,或者遇到过原始问题?

提前致谢!

4

1 回答 1

0

您是否使用 Azure 应用服务来托管此站点?如果是这样,您是否在应用程序设置中启用了“始终开启”?

于 2017-05-21T23:28:48.773 回答