微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我们在生产服务器上的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会对数据库进行多次调用,从而获取一个请求的数据.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐