12 windows performance iis-7 asp.net
我有一个 ASP.NET (v4.0) Web 应用程序,它安装在虚拟目录中(作为应用程序)并托管在它自己的应用程序池中。对应用程序的每个实例(即每个客户)重复此操作。
应用程序池是集成(非经典)模式并且 LoadUserProfile 设置为 true。否则,默认设置。
每个实例当前都有自己的代码/配置副本,以及自己的数据文件夹(基本文件读/写)。
此应用程序的 1 个实例运行良好(用于比较的操作需要约 4 秒)。每隔一个实例运行缓慢(相同操作的 10-25 秒)。
如果我将较慢的实例移动到“最快”的应用程序池,该实例就会启动。如果我将较快的实例移动到较慢的应用程序池中,该实例会变慢以爬行。
应用程序池最初以相同的方式创建 - 手动。我后来使用 powershell 复制例程来确保更快的应用程序池的精确副本,并且仍然保持相同的行为。比较 apppool.config 文件表明它们是相同的,除了虚拟目录分配。
据我所知,没有被阻止的共享资源,我通过关闭高性能应用程序池并重新启动进行了测试...慢仍然很慢,然后当我重新启动该应用程序池时(因此它已加载最后)它仍然更快......
失败请求跟踪 (FRT) 将是跟踪此问题的最佳工具。它将显示管道以及每个步骤完成所需的时间。这应该指出它是在 asp.net 部分中还是在 IIS 管道本身中。
要设置 FRT,请从站点级别的 IIS 创建一个 http 状态范围为 200-999 的 FRT 规则,并确保启用 FRT(这是与操作窗格分开的一个步骤)。
然后重现问题并查看生成的文件 (%SystemDrive%\inetpub\logs\FailedReqLogFiles\w3svc{siteid})。在 Internet Explorer 中打开它们。
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |