【发布时间】:2011-12-09 20:50:00
【问题描述】:
我的问题很简单。大约 2 年前,我们开始从 ASP Classic 迁移到 ASP.NET。 我们的问题是我们目前在服务器上有大约 350 个站点,并且服务器似乎陷入了困境。我们一直在尝试各种方法来提高性能,Query Optimizations、Disabling ViewState、Session State 等,它们都奏效了,但随着我们添加更多站点,我们最终会使用更多服务器资源,因此我们在代码中所做的改进几乎被抹杀了。
基本上我们现在处于一个临界点,我们的 CPU 目前平均接近 100%。我们的 IS 希望我们找到新的方法来改写网站上的代码以提高性能。
我有一个理论,我们只是处于一台服务器可以处理的站点数量的限制。
有什么想法吗?请仅在您对所谈论的内容有很好的了解时才回复。我听过很多人对车站进行理论化。我需要一个对可能发生的事情有实际了解的人。
这里是详细信息。
- 250 个 ASP.NET 站点
- 250 个管理站点(用 ASP.NET 编写,基本上它们是后端管理站点)
- 100 个经典 ASP 站点
在虚拟化的 Windows Server 2003 上运行。
- 3 个 CPU,4 GB 内存。
- 内存保持在 3 - 3.5 GB 左右
- CPU 峰值非常严重,有时它们会在短时间内(30 - 180 秒)保持接近 100%
数据库位于单独的服务器上,并且是 SQL SERVER 2005。
【问题讨论】:
-
取决于服务器和代码,您可以在一台服务器上放置比您描述的更多的站点但是因为我们对源代码一无所知(是 .NET 2 还是 4?它到底是做什么的?)和“虚拟机内的 CPU 峰值”并不是一个真正的诊断问题,答案只是纯粹的猜测......
-
天哪,你试图在玩具服务器上运行这么多网站?这不是关于 asp.net 的可扩展性,而是关于“我能得到多便宜”。这是一个提示 - 至少获得一个像样的工作站 - 16gb 内存。然后为体面的 IO 获取足够的磁盘。然后回来问。
-
“请仅在您对您所谈论的内容有很好的了解时才回复。我听过很多人对电台进行理论化。我需要一个对什么有实际了解的人可能会继续。” 你在开玩笑吧?你没有给我们任何信息来继续做出这样的回答。我们必须是你才能知道这一点。也就是说……你可能是对的。或者,你可能错了。
-
另一件事;我在下面提到。在支付人员将软件优化到 n 级的成本与购买更多硬件的成本之间存在平衡。您还应该考虑与尝试获得更多性能相关的成本。这是一个不断减少的回报。
-
您使用了多少个应用程序池?这个数字可以减少吗?
标签: c# asp.net performance sql-server-2005 windows-server-2003