gpt4 book ai didi

asp.net-mvc-4 - 如何跟踪对 IIS 的长时间运行调用?

转载 作者:行者123 更新时间:2023-12-01 10:44:49 24 4
gpt4 key购买 nike

我们的用户很不安。他们不断提示毛茸茸的、无法衡量的东西,尤其是速度缓慢,却没有给出具体细节,这当然使得追踪变得非常困难。

尽管如此,他们很有可能是对的,有些服务器调用需要很长时间才能返回。因此,我想在网站上放置某种嗅探器(我们在 IIS7 上使用 ASP.NET MVC 4),它将记录任何需要超过 n 秒才能完成的调用,或者返回超过 x 兆字节的数据,以及所有请求参数、响应大小,可能还有一定数量的响应数据。

不过,我不知道如何做到这一点。有什么建议么?

最佳答案

这是我对此的看法:

FRT

虽然您可以使用失败的请求跟踪来记录缓慢的请求,但根据我的经验,这对于找出请求在到达您的应用程序之前失败的原因更有用,而不是为什么它运行缓慢。 9/10 次它会简单地告诉你减速是在你的代码中的某个地方。

日志解析器

是的,您可以下载和分析 iis 日志。我用 Log Parser Lizard进行分析 - 它是日志解析器的一个很好的 gui。以下是您如何查询超过 1000 毫秒的慢速请求的示例:

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

新遗物
我的建议 - 放松自己并注册 free trial .不,我不为他们工作,但我经常使用他们的 APM 产品。在服务器上安装代理 - 设置它。在 10 分钟内,您会惊讶于您看到的有关该站点的数据。相信我。

它旨在在生产环境中工作,并为您提供有关运行缓慢的信息的惊人深度,直至数据库查询和堆栈跟踪。它的纯粹真棒。一旦其设置等待下一个用户投诉,登录并查看时间范围内的跟踪。

当您的专业试用期结束时,您仍然可以在免费套餐中获得有值(value)的数据,但只会保留最后 24 小时。我们购买了许可证——是的,价格昂贵,但每一分钱都值得。为什么?确定根本原因所花费的时间减少了一个数量级,我们可以通过查看缓慢请求列表中的第 2、3 和 4 号并在它们成为大问题之前处理它们来获得主动,最后警报让我们更加出现问题时 react 更迅速。

编码

你可以自己滚动。这个 blog使用 Mvc ActionFilters 进行日志记录。您也可以使用类似于 post 的 HttpModule .这种方法的好处是您可以独立于应用程序编译和实现模块,然后只需放入 dll 并更新 web.config 以连接模块。对于一个非常繁忙的站点,我会警惕这些方法。此外,获得正确的详细程度以完全识别根是具有挑战性的。

查看请求

正如 Appleman1234 所提到的,IIS 有一个鲜为人知的 feature查看当前正在执行的请求。它对于“嘿,它现在运行缓慢”的情况很方便。您可以使用 appcmd.exe 或 IIS gui 来执行此操作。您需要安装“请求监视器”IIS 功能才能使其正常工作。这种方法可以初步缩小问题范围,但不会向您显示 Controller 中运行缓慢的内容。

关于asp.net-mvc-4 - 如何跟踪对 IIS 的长时间运行调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27645632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com