我有一个运行在生产服务器上的asp.net应用程序。
服务器上的cpu使用率非常高,达到80-90%。
然而,每个请求似乎不会花费太长时间,除非cpu达到100%的峰值。
我需要获得一些分析数据,以确定高cpu使用率是由于少量高cpu请求造成的,还是由于一般的高负载造成的。
我可以在机器上添加更多内核,也可以在应用程序上进行网络农场,但我需要证据来证明任何成本的合理性和未来的性能。
有没有一种方法可以将每个页面请求的CPU使用情况记录到文件中?
我有一个运行在生产服务器上的asp.net应用程序。
服务器上的cpu使用率非常高,达到80-90%。
然而,每个请求似乎不会花费太长时间,除非cpu达到100%的峰值。
我需要获得一些分析数据,以确定高cpu使用率是由于少量高cpu请求造成的,还是由于一般的高负载造成的。
我可以在机器上添加更多内核,也可以在应用程序上进行网络农场,但我需要证据来证明任何成本的合理性和未来的性能。
有没有一种方法可以将每个页面请求的CPU使用情况记录到文件中?
实际上,您不能使用计数器直接确定单个请求的CPU利用率。ASP.NET请求由工作进程处理,工作进程的负载分布在所有可用的CPU核心上。您可以测量每个核心或整个进程的CPU利用率,但不能测量每个请求的CPU利用度。
您可以使用IIS7高级日志记录间接隔离CPU不足的请求。您可以从此处。阅读此博客了解如何启用自定义日志记录。您需要添加“CPU利用率”字段添加到日志定义。新的IIS日志文件将显示每个请求行的CPU利用率。然而,这不是请求处理的实际CPU利用率,而只是处理请求期间的CPU利用率。您仍然可以使用这些信息来确定可能会占用CPU的可疑请求。
通过负载测试进一步单独测试这些请求,看看它们中是否有任何一个在合理的负载下造成过多的CPU使用。Microsoft负载测试工具包含在VSTS 2010 Ultimate edition或VSTS 2008 Test edition或Team Suite中。或者,您可以使用WCAT–一个免费的Microsoft命令行HTTP负载生成器。此外,我们还开发了一个用于负载测试的免费Fiddler扩展,名为StresStimulus,它使用各种负载模式回放Fiddler会话并绘制性能指标图。
在生产中运行负载测试时要小心。您可以在所需的负载下运行每个请求几秒钟。如果找不到未优化的页面,请使用此因素来证明硬件升级的合理性。
In my webpages I have references to js and images as such: "../../Content/Images/"Filename" In my code if I reference a file as above, it doesnt work so i have to write: "c:/miscfiles/"filename" 1-...
I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...
Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...
I m looking for best practices here. Sorry. I know it s subjective, but there are a lot of smart people here, so there ought to be some "very good" ways of doing this. I have a custom object called ...
I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...
i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...
For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?
I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!