ASP.Net IIS7获取每个请求的CPU使用率
我有一个在生产服务器上运行的asp.net应用程序.
服务器上的CPU使用率非常高,为80-90%. 但是,除非cpu达到100%的峰值,否则每个请求似乎都不会花费太长时间. 我需要获取一些分析数据,以确定高CPU使用率是由于少量的高CPU请求,还是,如果它只是一般的高负载. 我可以在机器上添加更多核心,也可以在应用程序中添加web,但我需要证据才能证明任何成本以及未来的性能证明. 有没有办法记录每个页面请求的CPU使用情况? 解决方法
实际上,您无法使用计数器直接确定各个请求的CPU利用率. ASP.NET请求由工作进程处理,其负载分布在所有可用的CPU核心上.您可以测量每个核心或每个进程的CPU利用率,但不能按照请求进行测量.
您可以使用IIS7高级日志记录间接隔离CPU饥饿请求.您可以从here下载它.阅读this blog以了解如何启用自定义日志记录.您需要在日志定义中添加“CPU利用率”字段.新的IIS日志文件将显示每个请求行的CPU利用率.然而,这不是请求处理的实际CPU利用率,而是请求处理期间的CPU利用率.您仍然可以使用此信息来确定可能会占用大量CPU的可疑请求. 通过负载测试进一步单独测试这些请求,看看它们是否在合理负载下产生过多的CPU使用率. Microsoft负载测试工具包含在VSTS 2010 Ultimate Edition或VSTS 2008 Test Edition或Team Suite中.或者,您可以使用WCAT – 免费的Microsoft命令行HTTP负载生成器.此外,我们开发了一个名为StresStimulus的免费Fiddler负载测试扩展,可以使用各种负载模式和图形性能指标重放Fiddler会话. 在生产中小心运行负载测试.您可以在理想的负载下运行每个请求几秒钟.如果您无法找到未经优化的页面,请使用此因子来证明硬件升级的合理性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 发布网站时,我的默认文档名称不断从IIS中删除
- ASP.NET Core集成现有系统认证
- asp.net – 不同执行顺序的目的:Init()和Load()
- asp.net-mvc – ASP.NET MVC和混合模式认证
- asp.net-mvc-3 – AZURE ACS – Windows Live ID – 如何获
- iis – 在经典ASP / Javascript中将对象插入全局范围
- 在ASP.Net中如何做一个搜索表单?
- 如何在ASP.Net WebControl的“Content”内部属性??中包含其
- asp.net – 在.NET 4.5中混合使用Windows和Forms身份验证:
- ASP.Net:将客户端onClick添加到GridView中的HyperlinkFiel