加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 03:47:08 所属栏目:asp.Net 来源:网络整理
导读:我们在生产服务器上的W3WP流程一直很高.它不会达到最大值100%,但会很快上升到90%s.为了帮助调查这一点,我使用JetBrains dotTrace描述了实时应用程序. 结果如预期.所有慢速方法都是查询数据库的NHibernate函数.我的问题是,这些慢速方法是否会对我们的Web服
我们在生产服务器上的W3WP流程一直很高.它不会达到最大值100%,但会很快上升到90%s.为了帮助调查这一点,我使用JetBrains dotTrace描述了实时应用程序.

结果如预期.所有慢速方法都是查询数据库的NHibernate函数.我的问题是,这些慢速方法是否会对我们的Web服务器上的CPU产生影响,因为我们的数据库服务器位于单独的计算机上.当然,如果数据库服务器正在做一些工作,那么Web服务器jsut等待响应,CPU不应该上升?

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

dotTrace热点截图

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

解决方法

很可能是NHibernate本身正在对您的Web服务器进行艰苦的工作,而且数据库实际上做的相对较少.

我建议运行一个SQL分析器来查看数据库是否真的需要在单个调用上花费很长时间(来自NHibernate).

我的猜测是你会看到NHibernate对数据库进行了大量的调用,然后处理它们(在你的erb服务器服务器上),并且这是负责高CPU的.

如果对连接有很多延迟提取,那么最终可能会出现这样的情况,即NHibernate会对数据库进行多次调用,从而获取一个请求的数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读