我们生产服务器上的 W3WP 进程一直很高。它不会在 100% 时达到最大值,但会跳到 90%sa 公平位。为了帮助调查这一点,我使用 JetBrains dotTrace 分析了实时应用程序。
结果符合预期。所有慢速方法都是查询我们数据库的 NHibernate 函数。我的问题是,这些缓慢的方法是否会影响我们 Web 服务器上的 CPU,因为我们的数据库服务器位于单独的机器上。当然,如果数据库服务器正在做一些工作,那么 Web 服务器 jsut 会等待响应,CPU 不应该上升吗?
如果是这种情况,我如何使用 dotTrace(或其他工具,如果需要)来确定 CPU 的使用位置,而不是服务器只是等待来自其他地方的响应?
dotTrace 热点截图
您可以从屏幕截图中看到,大部分时间都花在等待外部 HTTP 请求完成上。但是,这些不应该影响我认为的 Web 服务器上的 CPU 使用率