0

我有一个相当大的网站(~75k LoC),在 Azure 上部署了两台 D2 v2 机器(7GiB RAM,2 VCPU)。

当我进行新构建时,我观察到:

  • 1 个 CPU 达到 100%
  • 这持续长达两分钟
  • 然后Application_Start被解雇

我正在努力缩短从发布到Application_Start被解雇的时间,因为我们定期发布,这确实给网站上的访问者带来了一些痛苦。

发布网站包括:

  • 发布到文件夹(File System发布方法)
  • 配置Release
  • 删除所有现有文件已选中
  • 检查发布期间的预编译
  • 从 App_Data 文件夹中排除文件已选中
  • Do not merge在高级预编译设置中,除了合并选项外,没有任何检查或选择
  • 压缩发布的文件夹,上传到虚拟机并解压缩覆盖现有文件(只需几秒钟)

我的问题是:

  • 最初的停滞是在正常范围内,还是我可以做些什么来衡量它在做什么?
  • 我可以更改任何设置以缩短到达Application_Start活动的时间吗?
4

1 回答 1

1

您看到的是 IIS 启动应用程序池,这需要一段时间是正常的,尤其是在站点很大的情况下。启动时间主要受硬件限制——因为您看到其中一个 CPU 内核达到 100%,这是您的瓶颈。

由于您有两台 Web 服务器,因此处理此问题的最佳方法是部署到一台服务器,然后等待它重新联机,然后再部署第二台服务器。在部署后发送预热请求将确保 IIS 尽快启动。

于 2019-08-24T21:24:09.113 回答