当您首次访问在 Windows Server 2012 r2 上的 IIS 8 上运行的站点时,该站点需要很长时间才能打开。然后它工作正常,过了一会儿我进去了 - 它再次打开了很长时间。从哪里开始寻找问题所在,或者有人可以提出解决方案?..基本的东西,比如服务器资源,我检查了网络连接的稳定性,一切都很好......
当您首次访问在 Windows Server 2012 r2 上的 IIS 8 上运行的站点时,该站点需要很长时间才能打开。然后它工作正常,过了一会儿我进去了 - 它再次打开了很长时间。从哪里开始寻找问题所在,或者有人可以提出解决方案?..基本的东西,比如服务器资源,我检查了网络连接的稳定性,一切都很好......
默认情况下,IIS 会停止非活动站点以节省服务器资源,在开发人员计算机或一体机服务器上,这是正常行为。
如果您有专门用于站点的专用服务器,则可以将站点配置为始终可用。为此,请转到应用程序池的高级设置并更改以下设置(我给出了适用于 Windows 8.1 的 Russian IIS 的设置名称,其他版本可能略有不同 - 但原理是相同的):
截图:https ://i.stack.imgur.com/okN53.png
如果您有一个静态站点,那就足够了。但是没有它,静态站点不应该变慢,所以我假设您有一个 Web 应用程序。为了让 Web 应用程序快速运行,它必须启动并加载其资源(“预热缓存”)。
这也可以自动完成。为此,您需要安装名为“应用程序初始化”的 IIS 模块(如果之前未安装)。接下来,您需要转到 Web 应用程序(或站点,如果它部署在根目录中)的高级设置并在那里启用
是的,翻译相当笨拙。但是什么是。
截图:https ://i.stack.imgur.com/piqK5.png
现在它仍然是注册一个或多个 URL,IIS 将自己向其发出请求,从而将 Web 应用程序从睡眠中唤醒。为此,请转到 Web 应用程序配置编辑器,在那里选择一个部分
"system.webServer/applicationInitialization"
并编辑默认集合。截图:https ://i.stack.imgur.com/jms2L.png
然后这些设置将进入 web.config 文件。如果您使用自动部署工具,它们可能会覆盖您在此文件中的设置。这里有两种解决方案。
首先,必要的地址可以由开发人员编写并与项目的其余源代码一起保存。
第二:您需要在界面中切换配置级别,以便您的设置进入位于其他地方的配置。
截图:https ://i.stack.imgur.com/uThfr.png
也许不是操作系统和环境,而是站点本身?从行为来看,您的网站在下载文件时加载缓慢,然后浏览器已经从缓存中获取数据,因此一切都运行得更快(在一定时间后,浏览器再次请求文件,这会导致刹车。
尝试硬重置并查看 Chrome 开发者工具中的瀑布流。要硬重置和清除缓存 - 打开开发人员工具,右键单击地址栏前面的更新图标并选择适当的项目。
速度可能会受到大字体或图像文件的影响。另外,在第一次启动时,可能会有一个很长的 DNS 查找,但这应该已经按照时间表进行了查看,这很难说。
在服务器上保留统计信息也没有坏处(例如,munin 或任何其他收集系统信息的工具)。一些提供商沉迷于削减托管/VDS 上的资源,所以可能是因为这个。您需要查看处理器和页面响应时间的图表。如果可用处理器资源下降或响应时间增加,则需要研究服务器本身的情况。
我有一个类似的问题。VDS 托管只有 1 GB 的 RAM,在管理期间通过 RDP 打开许多窗口和应用程序时,当我离开 RDP 时忘记关闭它们,结果发现 RAM 不够,站点非常慢。解决方案是在退出 RDP 时关闭所有不必要的窗口和应用程序。