gpt4 book ai didi

ASP.Net IIS7 获取每个请求的CPU使用率

转载 作者:行者123 更新时间:2023-12-02 21:29:11 25 4
gpt4 key购买 nike

我有一个在生产服务器上运行的 ASP.NET 应用程序。

服务器上的CPU使用率非常高,80-90%。

但是,每个请求似乎不会花费太长时间,除非 CPU 达到 100% 的峰值。

我需要获取一些分析数据,以确定高 cpu 使用率是否是由于少量高 cpu 请求造成的,或者是否只是一般高负载。

我可以向机器添加更多核心,也可以对应用程序进行网络农场,但我需要证据来证明任何成本的合理性并证明 future 的性能。

有没有办法将每个页面请求的 CPU 使用情况记录到文件中?

最佳答案

实际上,您无法使用计数器直接确定各个请求的 CPU 利用率。 ASP.NET 请求由工作进程处理,其负载分布在所有可用的 CPU 核心上。您可以测量每个核心或整个进程的 CPU 利用率,但不能测量每个请求的 CPU 利用率。

您可以使用 IIS7 高级日志记录间接隔离占用大量 CPU 的请求。您可以从here下载。阅读 this blog了解如何启用自定义日志记录。您需要在日志定义中添加“CPU 利用率”字段。新的 IIS 日志文件将显示每个请求行的 CPU 利用率。然而,这并不是请求处理的真实CPU利用率,而仅仅是请求处理期间的CPU利用率。您仍然可以使用此信息来确定可能会占用大量 CPU 的可疑请求。

通过负载测试进一步单独测试这些请求,看看其中是否有任何请求在合理负载下造成过多的 CPU 使用率。 Microsoft 负载测试工具包含在 VSTS 2010 Ultimate 版或 VSTS 2008 Test Edition 或 Team Suite 中。或者您可以使用WCAT – 免费的 Microsoft 命令行 HTTP 负载生成器。此外,我们还开发了一个用于负载测试的免费 Fiddler 扩展,名为 StresStimulus使用各种负载模式和图形性能指标重放 Fiddler session 。

在生产中运行负载测试时要小心。您可以在所需的负载下运行每个请求几秒钟。如果您无法找到未优化的页面,请使用此因素来证明硬件升级的合理性。

关于ASP.Net IIS7 获取每个请求的CPU使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5028878/

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