我目前在生产环境中遇到一些挂起问题,经过调查,我发现应用池的工作进程中有大量请求排队。常见的情况是,每个排队很长时间的请求都是Web API请求,我在应用中同时使用MVC和Web API。
请求排队约3小时,当应用程序池被回收时,它们立即开始排队。
它们都处于执行请求处理程序状态你知道我应该在哪里继续挖吗?
0yg35tkg1#
您的请求可能会因以下原因而被延迟:
为了找出你的请求在做什么,从获取请求的url开始,需要很长时间。您可以在cmd行中执行此操作,如下所示
c:\windows\system32\inetsrv\appcmd list requests
如果从URL和代码看不明显,你需要在服务器上做一个w3wp.exe的进程转储。一旦你有了一个进程转储,你需要把它加载到windbg中,以便分析什么占用了所有的cpu周期。覆盖windbg是相当大的,但这里简要地介绍一下你需要做的事情:
有很多关于windbg的博客。这里有一个one的例子。Tess Ferrandez的blog是分析这类问题的一个很好的资源。
5gfr0r5j2#
这是一个真正的长镜头没有第一手访问您的系统,但尝试检查处理程序Map在IIS管理器图形用户界面为您的WebApi。比较它与IIS设置您的DEV或任何其他环境中的工作。如果这不是问题所在,请比较该应用程序的所有其他IIS设置。祝你好运
2条答案
按热度按时间0yg35tkg1#
您的请求可能会因以下原因而被延迟:
为了找出你的请求在做什么,从获取请求的url开始,需要很长时间。
您可以在cmd行中执行此操作,如下所示
如果从URL和代码看不明显,你需要在服务器上做一个w3wp.exe的进程转储。一旦你有了一个进程转储,你需要把它加载到windbg中,以便分析什么占用了所有的cpu周期。覆盖windbg是相当大的,但这里简要地介绍一下你需要做的事情:
有很多关于windbg的博客。这里有一个one的例子。Tess Ferrandez的blog是分析这类问题的一个很好的资源。
5gfr0r5j2#
这是一个真正的长镜头没有第一手访问您的系统,但尝试检查处理程序Map在IIS管理器图形用户界面为您的WebApi。比较它与IIS设置您的DEV或任何其他环境中的工作。
如果这不是问题所在,请比较该应用程序的所有其他IIS设置。
祝你好运