我们看到来自我们的一个.NET MVC应用程序的CPU和内存使用量非常高,而且似乎无法追踪它的原因。我们的组无法访问Web服务器本身,而是在遇到某些限制时(90%或CPU或内存)自动得到通知。在本地运行我们似乎无法找到问题。我们认为的一些项目可能是罪魁祸首
除此之外,就Web应用程序而言,该应用程序非常标准。这里有几个表单,登录/注销,一些管理用户和数据的管理功能;没有什么超级花哨的。
我正在研究两种不同的解决方案,并想知道什么是最好的。
答案 0 :(得分:2)
我推荐使用asp.net mvc miniprofiler。 http://miniprofiler.com/
它易于实现和扩展,可以在生产模式下运行,可以将其结果存储到SQL Server。我多次使用它来发现难以解决的性能问题。
另一种可能性是将http://getglimpse.com/与miniprofiler glimpse-plugin https://github.com/mcliment/miniprofiler-glimpse-plugin结合使用
这两个工具都是开源的,不需要管理员访问服务器。
答案 1 :(得分:1)
您可以将Preemptive的运行时智能连接到它。 - http://www.preemptive.com/
否则,分析器或负载测试可以帮助您找到问题。你有什么监控实际机器健康状况的吗? (处理器使用情况,内存使用情况,磁盘队列长度等)。
Visual Studio有一个内置的profiler(取决于版本和版本)。您可以WMI query出现问题的Web服务器,或者编写/提供诊断记录/监控工具,将其交给有权访问的人。
你有任何输出缓存吗?什么版本的IIS? 90%的处理器使用情况是否会被警告显示您的Web进程实际上就是这样做的? (如果警报配置不当,可能不是您的应用程序)
答案 2 :(得分:-2)
我有类似的情况,我根据this project
为我的应用管理员创建了一个系统监视器