Asp.net mvc 4 如何跟踪对IIS的长时间运行调用?
我们的用户焦躁不安。他们不停地抱怨毛茸茸的、无法测量的东西,尤其是速度慢,却没有给出具体细节,这当然让追踪变得非常困难 尽管如此,很有可能他们是对的,有些服务器调用需要很长时间才能返回。所以我想在网站上安装一种嗅探器(我们在IIS7上使用ASP.NET MVC 4),它将记录任何需要n秒以上才能恢复的调用,或者返回超过x兆字节的数据,以及所有请求参数、响应大小,可能还有一定数量的响应数据Asp.net mvc 4 如何跟踪对IIS的长时间运行调用?,asp.net-mvc-4,iis,iis-7,Asp.net Mvc 4,Iis,Iis 7,我们的用户焦躁不安。他们不停地抱怨毛茸茸的、无法测量的东西,尤其是速度慢,却没有给出具体细节,这当然让追踪变得非常困难 尽管如此,很有可能他们是对的,有些服务器调用需要很长时间才能返回。所以我想在网站上安装一种嗅探器(我们在IIS7上使用ASP.NET MVC 4),它将记录任何需要n秒以上才能恢复的调用,或者返回超过x兆字节的数据,以及所有请求参数、响应大小,可能还有一定数量的响应数据 但是我不知道怎么做。有什么建议吗?有多种方法可以做到这一点: 失败的请求跟踪(FRT)–以前称为失败的请求
但是我不知道怎么做。有什么建议吗?有多种方法可以做到这一点:
- 失败的请求跟踪(FRT)–以前称为失败的请求事件缓冲(FREB),自定义失败条件为会占用一定的时间来加载/运行
- 使用IIS日志功能记录请求信息,然后使用LogParserStudio之类的工具
- 在IIS服务器上使用Fiddler或IISMonitor等工具捕获请求信息
有关更多信息,请参见。以下是我的看法: FRT 虽然您可以使用失败的请求跟踪来记录缓慢的请求,但根据我的经验,查找请求在到达应用程序之前失败的原因比查找其运行缓慢的原因更为有用。9/10倍的时间只会告诉您代码中的某个地方出现了减速 日志解析器 是的,您可以下载和分析iis日志。我使用它进行分析-这是一个很棒的gui over log解析器。下面是一个示例,说明如何查询超过1000ms的慢速请求:
SELECT
To_String(To_timestamp(date, time), 'dd/MM/yyyy hh:mm:ss') As Time,
cs-uri-stem, cs-uri-query, cs-method, time-taken, cs-bytes, sc-status
FROM
'C:\inetpub\logs\LogFiles\W3SVC1\u_ex140721.log'
WHERE
time-taken > 1000
ORDER BY time-taken desc
新遗址
我的建议-放松自己,注册一个。不,我不为他们工作,但我经常使用他们的APM产品。在服务器上安装代理-设置它。10分钟后,你会对你看到的有关该网站的数据感到惊讶。相信我
它专为在生产环境中工作而设计,为您提供了关于运行速度慢的信息的惊人深度,包括数据库查询和堆栈跟踪。这真是太棒了。一旦它的设置等待下一次用户投诉,请登录并查看时间范围内的跟踪
当您的试用期结束时,您仍然可以在免费层上获得有价值的数据,但它只能持续24小时。我们购买了许可证-价格昂贵,但值得每一分钱。为什么?确定根本原因所需的时间减少了一个数量级,我们可以通过查看慢速请求列表中的第2、3和4项来获得主动性,并开始工作在这些问题成为大问题之前对它们进行警告,最后,当出现问题时,警告会使我们的反应更加灵敏
编码它
你可以使用自己的。这使用Mvc ActionFilters来做日志记录。你也可以使用类似的HttpModule。这种方法的好处是你可以独立于应用程序编译和实现模块,然后只需插入dll并更新web.config来连接模块。我会对这些方法保持警惕对于一个非常繁忙的站点来说。另外,获取正确的细节级别以完全识别根目录也是一项挑战
查看请求
正如Appleman1234所提到的,IIS对于查看当前执行的请求知之甚少。对于“hey Its running slow now”的情况,它非常方便。您可以使用appcmd.exe或IIS gui来执行此操作。您需要安装“Request Monitor”IIS功能才能使其正常工作。这种方法可以初步缩小问题的范围,but不会向您显示控制器中运行缓慢的内容。谢谢!我将使用New Relic,到目前为止看起来很棒!酷-我想您不会回头。我发现钻研NR会让人上瘾,总是在寻找如何提高性能。嗯,我对NR的体验不太好。您介意看看并告诉我我正在做什么吗错了吗?谢谢!很抱歉听到这个消息。我已经讨论了这个问题,将回答你的新问题。我很恼火这里有大约5个答案。如果它被分解,我将至少投票一个答案。因为我还没有尝试过所有(甚至你的大多数方法),我不能支持这篇文章。