gpt4 book ai didi

asp.net - 使用 jetBrains dotTrace 检测 W3WP CPU 问题

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

我们生产服务器上的 W3WP 进程一直很高。它不会在 100% 时达到最大值,但会稍微上升到 90%s。为了帮助研究这一点,我使用 JetBrains dotTrace 分析了实时应用程序。

结果如预期。所有慢速方法都是查询我们数据库的 NHibernate 函数。我的问题是,由于我们的数据库服务器在一台单独的机器上,这些缓慢的方法是否会影响我们 Web 服务器上的 CPU。如果数据库服务器正在做一些工作,那么 Web 服务器肯定会等待响应,而 CPU 不应该上升?

如果是这种情况,我如何使用 dotTrace(或其他必要的工具)来确定 CPU 的使用位置,而不是服务器只是等待来自其他地方的响应?

dotTrace 热点截图
alt text

从截图中可以看出,大部分时间都花在等待外部 HTTP 请求完成上。但是,这些不应该影响我认为的 Web 服务器上的 CPU 使用率

最佳答案

很可能是 NHibernate 本身在您的 Web 服务器上做了繁重的工作,而数据库实际上做的相对较少。

我建议运行一个 SQL 分析器来查看数据库是否真的在一次调用中花费了很长时间(来自 NHibernate)。

我的猜测是,您会看到 NHibernate 对数据库进行了大量调用,然后处理它们(在您的 erb 服务器上),而这正是导致 CPU 高的原因。

如果你有很多对连接的延迟获取,你最终可能会遇到 NHibernate 对数据库进行多次调用以获取一个请求的数据的情况。

关于asp.net - 使用 jetBrains dotTrace 检测 W3WP CPU 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3776987/

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