我正在尝试使用 WILY Introscope 监控在服务器上花费的时间,但我观察到 WILY 中提到的每个服务器的时间在 100 到 1000 毫秒的范围内。但是页面在浏览器中加载所需的时间几乎是 5 秒。
为什么工具报告的值不正确?如何获得 WILY 的完整时间?
我正在尝试使用 WILY Introscope 监控在服务器上花费的时间,但我观察到 WILY 中提到的每个服务器的时间在 100 到 1000 毫秒的范围内。但是页面在浏览器中加载所需的时间几乎是 5 秒。
为什么工具报告的值不正确?如何获得 WILY 的完整时间?
页面是一个复杂的项目,需要解析页面内容,然后请求多个服务器/源。因此,您的页面加载时间将由单个组件的请求时间、页面解析和 javascript 的处理时间(取决于虚拟用户类型)、页面组件的请求、它们的服务来源等组成。这对于您的 Wily 监控,它可能仅在所涉及的层之一上。
例如,您可能从 CDN 提供静态组件,该 CDN 在您的 Wily 模型中的可见性为零。当大部分时间都花在为 Web 服务器提供静态组件上时,您可能还会查看您的应用程序服务器,从监控的角度来看,这通常被忽略。您的页面可能包含正在加载的第三方组件,这些组件在 Loadrunner 时间中计算在内,但在 Wily 时间中不计算在内。
这一切都归结为一个抽样问题。您在深度诊断工具中看到的内容通常是总页面加载的一部分,或者是构成要加载更多组件的页面的单个请求。如果您想要更有趣的外观,请在您的 Web HTTP 请求日志中启用 w3c time-taken 字段,并查看每个单独请求的成本。您也可以在应用服务器的 Web 层中执行此操作。然后,Wily 将为那些“缓慢”的项目提供内部细分。
WILY 中提到的每个服务器的时间在 100 到 1000 毫秒的范围内。但是页面在浏览器中加载所需的时间几乎是 5 秒。
原因是 - 在浏览器中,您会看到来自浏览器的所有传出流量。理想情况下,任何网页都将包含 1 个 POST 请求,然后是多个 GET 请求。POST 可以是您的文本/html 数据,而 Get 可以是图像、CSS、javascript 等。
大多数情况下,这些 Get 请求将由 Web 服务器响应,而 post 请求将由应用程序服务器提供服务。
WILY 中报告的时间只是服务器上服务 POST 请求所花费的时间。WILY 不会捕获您的 GET 请求调用。
为什么工具报告的值不正确?如何获得 WILY 的完整时间?
工具未报告不正确的值。理想情况下,工具位于 JVM 上。因此它监控 JVM 的活动并提供指标。这是预期的行为。