我们看到我们的一个 .NET MVC 应用程序占用了大量的 CPU 和内存,并且似乎无法找到它的原因。我们的团队无法访问 Web 服务器本身,而是会在达到某些限制(CPU 或内存的 90+%)时自动收到通知。在本地运行我们似乎找不到问题。我们认为可能是罪魁祸首的一些项目
- 当用户执行某些操作时,应用程序会在后台运行许多线程
- 我们正在使用 memcached(在与 Web 服务器不同的机器上)
- 我们正在使用网络套接字
除此之外,就 Web 应用程序而言,该应用程序是相当标准的。这里有几个表格,那里有登录/注销,一些管理用户和数据的管理功能;没有什么超级花哨的。
我正在研究两种不同的解决方案,并想知道什么是最好的。
- 在应用程序本身内创建一个页面(仅适用于应用程序管理员),显示有关正在使用的内存和 CPU 的信息。有没有这样的例子,甚至有可能吗?
- 使用安装在 Web 服务器上的某种类型的 3rd 方分析服务或应用程序,并允许我们向下查找导致应用程序中 CPU 和内存使用率高的原因。