【发布时间】:2014-01-31 12:11:57
【问题描述】:
我的团队使用带有实体框架、ASHX 处理程序和网页的 ASP.NET 4.0 构建了一个网络企业 ERP 应用程序 (>20)。该应用程序的构建可容纳超过 15000 名用户。但是当应用程序托管在测试环境中时,当登录用户超过 600 时,它会抛出 Bad Gateway 错误。应用程序包含 3 层 - 前端(ASPX 页面)、实体层、数据访问层(类)。
后端服务器是 SQL Server 2008 R2。
测试报告显示 - 连接超时、大量内存泄漏和非托管代码。 我们已经尽力通过处理对象和类等来修复内存泄漏。应用程序不包含最小图像。
但问题仍然存在。甚至Web服务器和DB服务器的服务器配置都非常高端。 16 个 CPU 和 4 GB RAM。
谁能帮我解决这个问题?
【问题讨论】:
-
你在使用缓存吗?假设您有 600 个用户,那么服务器正在努力满足数据需求。
-
新关键字有什么关系吗? danielksmith.wordpress.com/2013/07/05/…
-
您是否运行过静态代码分析(Fxcop 等)?你确定你的 Dispose 模式都是正确的吗?你有任何用户编写的线程代码吗?线程错误非常普遍,几乎可以肯定。
-
您的网络服务器中有 16 个内核和 4gb 内存?这是一个非常不平衡的服务器。
-
WinDbg 会在 5 分钟内告诉你这些资源的去向,唯一的麻烦是没有 pryor 经验,你需要 1-2 天才能学会如何正确使用它并了解它的输出是。查看Tess Fernandez's Blog - 用于解决资源使用问题和使用 WinDbg 的大量资源
标签: architecture .net memory-management