ASP.net发布项目启动缓慢



我有一个相当大的网站(约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事件的时间吗

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

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

相关内容

  • 没有找到相关文章

最新更新