ASP.net发布项目启动缓慢
ASP.net publishing project is slow to start
我有一个相当大的网站(~75k LoC),在 Azure 上部署了两台 D2 v2 机器(7GiB RAM,2 VCPU)。
当我进行新构建时,我观察到:
- 1 个 CPU 达到 100%
- 这最多持续两分钟
- 然后
Application_Start
被解雇
我正在努力缩短从发布到 Application_Start
被解雇的时间,因为我们会定期发布,这确实会给网站访问者带来一些痛苦。
发布站点包括:
- 发布到文件夹(
File System
发布方法)
- 配置
Release
- 删除所有选中的现有文件
- 已选中发布期间预编译
- 从 App_Data 文件夹中排除文件已选中
- 在高级预编译设置中,除了合并选项中的
Do not merge
外,没有检查或选择任何内容
- 将发布的文件夹压缩,上传到 VM 并解压缩覆盖现有文件(只需几秒钟)
我的问题是:
- 最初的延迟是否在正常范围内,或者我可以做些什么来衡量它在做什么?
- 我可以更改任何设置以缩短到达
Application_Start
事件的时间吗?
您看到的是 IIS 正在启动应用程序池,这需要一段时间是正常的,尤其是在站点很大的情况下。启动时间主要受硬件限制 - 正如您看到的 CPU 核心之一达到 100% 这是您的瓶颈。
由于您有两台 Web 服务器,处理此问题的最佳方法是部署到一台服务器,然后等待它重新联机,然后再部署第二台。部署后发送预热请求将确保 IIS 尽快启动。
我有一个相当大的网站(~75k LoC),在 Azure 上部署了两台 D2 v2 机器(7GiB RAM,2 VCPU)。
当我进行新构建时,我观察到:
- 1 个 CPU 达到 100%
- 这最多持续两分钟
- 然后
Application_Start
被解雇
我正在努力缩短从发布到 Application_Start
被解雇的时间,因为我们会定期发布,这确实会给网站访问者带来一些痛苦。
发布站点包括:
- 发布到文件夹(
File System
发布方法) - 配置
Release
- 删除所有选中的现有文件
- 已选中发布期间预编译
- 从 App_Data 文件夹中排除文件已选中
- 在高级预编译设置中,除了合并选项中的
Do not merge
外,没有检查或选择任何内容
- 将发布的文件夹压缩,上传到 VM 并解压缩覆盖现有文件(只需几秒钟)
我的问题是:
- 最初的延迟是否在正常范围内,或者我可以做些什么来衡量它在做什么?
- 我可以更改任何设置以缩短到达
Application_Start
事件的时间吗?
您看到的是 IIS 正在启动应用程序池,这需要一段时间是正常的,尤其是在站点很大的情况下。启动时间主要受硬件限制 - 正如您看到的 CPU 核心之一达到 100% 这是您的瓶颈。
由于您有两台 Web 服务器,处理此问题的最佳方法是部署到一台服务器,然后等待它重新联机,然后再部署第二台。部署后发送预热请求将确保 IIS 尽快启动。