Azure Web应用程序具有缓慢且不温暖的负载(30秒+负载)

Lar*_*ard 11 c# asp.net azure azure-web-sites azure-sql-database

我对Azure Webapp有一个非常大的问题,并希望听到建议.

我们的经历:

当我转到我们的网站时,它非常快.平均负载约为1秒,并按预期响应.

但是,一旦pr.10-20分钟,我们得到一个非常冷的负荷 - 它是30-60秒+.

如果该网站没有访问者并且很冷,这是有道理的,但我们在网站的所有工作时间都有10位以上的访问者,至少有3-5个请求.

当然,这种额外的负荷是完全不可接受的.

有任何想法吗?

我们的设置:

我们有两个天蓝色的网络应用程序.一个用于生产,一个用于开发.

生产是一个"标准小",当CPU达到65-85%时,自动缩放.

我们的数据库是S2,10 gb.

这是一个非常简单的标准ASP.NET MVC站点,包含一些文本,表单和一些远程连接.

唯一的"非标准"是300万索引页面,它们可以查看数据库(页面加载大约为1秒).这会吸引很多来自Google的访问者.我们还收到一些来自谷歌的抓取,因为我们有一个包含3mio +页面的站点地图.

监视器的数据:

编辑:来自新监视器的数据.

在此输入图像描述

web应用程序:

在此输入图像描述

数据库:

在此输入图像描述

配置:

制作网络应用程序:

在此输入图像描述

数据库:

在此输入图像描述

我们的尝试:

1:永远在线.

我们总是多次尝试过,但是在最初的30分钟到6个小时之内的某个时间点,该网站只是下降而不会回来**.这当然是一个巨大的问题,并不是一个解决方案.

2:在VM上运行.

我们在Azure(4gb RAM)上的VM上有一个非常稳定和精细的设置,运行正常.我们的反应相当缓慢,但效果不错.但是,我们希望使用Web应用程序将缩放和平台"外包"到Azure - 我们只是不能接受这个速度:)

**

它永远没有反应,直到超时.我尝试了两种方案:一种是停止和启动web-app工作,另一种是我必须进行重新部署

Lar*_*ard 1

我找到了解决方案。

解决方案不仅在一个地方,而且在多个地方。

让我尝试一下潜入。

主要挑战是我们已索引的 300 万页。Google 每天抓取 50-150k 页面,我们可以在 Google 网站管理员工具中看到:

在此输入图像描述

这些页面中 99.9% 是独特类型的地址页面。我深入研究了这些,发现默认情况下需要 1.5-2 秒(!)。跑去测试时甚至很慢。

步骤#1 是创建一个新索引并优化代码。性能提升 5 倍。

现在,这本身并不能解决问题。我还将数据库升级到新的 S3...没有完全解决问题(但仍然更好)。

我还将我们的 Azure Web 应用程序升级到 7GB 版本 - 然后事情就开始执行了。

然而,每 30 分钟我们仍然会遇到一个小问题。我进入我们的虚拟机,发现了一个旧的控制台作业,它保留了一些内容的顺序......我暂停了该作业。

这些发现都不能单独存在 - 但在所有这些问题得到解决之后 - 我们又恢复正常了,网站响应也可以接受!

欢呼!