c# - 一台服务器上 ASP.NET 站点的最大数量/限制

标签 c# asp.net performance sql-server-2005 windows-server-2003

我的问题很简单。大约 2 年前,我们开始从 ASP Classic 迁移到 ASP.NET。 我们的问题是我们目前在服务器上有大约 350 个站点,而且服务器似乎陷入了困境。我们一直在尝试各种方法来提高性能,查询优化禁用 ViewState session 状态 等,它们都奏效了,但正如我们添加更多站点,我们最终会使用更多服务器资源,因此我们在代码中所做的改进实际上会被抹去。

基本上我们现在处于临界点,我们的 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。

最佳答案

看起来你已经达到了那个点。您已经优化了您的应用程序,您已经查看了服务器性能,您可以看到您正在达到内存使用峰值、CPU 最大化,而且,让我们面对现实吧,管理如此多的网站绝非易事。

此外,您的 VM 规范也不是很好。尤其是内存,对于您拥有的站点数量来说可能不是很好。

您有足够的理由搬家。

但是,有些事情要看:

1) 这 250 个站点中实际使用了多少个?哪些是最高绩效违规者?那些是被转移到自己的盒子上的主要候选人。

2) 有多少根本没有被使用?你能退休吗?

3) 您正在虚拟机上运行。您使用的是哪种虚拟机平台?该硬件上还运行着哪些其他服务器?

4) 你目前有什么样的裁员?一个盒子上有 250 个站点,没有备份?如果您有一个备份服务器,您可以使用它来循环请求,或者作为网络场来分担负载。

假设您决定搬家。您可能应该考虑的第一件事是如何。

您打算简单地将网站数量减半吗?一个盒子上有 125 个以上的管理员,另一个盒子上有 125 个以上的管理员?还是您要移动最常用的?

或者您可以拥有多个虚拟机,所有虚拟机都处于事件状态,作为网络场或负载平衡系统的一部分。

尽管如此,购买更多硬件确实存在阻力。

在某些时候,您将不得不面对,因为有时候,事情会变老或被抛在后面。新服务器在相同空间内具有更多的处理能力和内存,并且运行成本更低。

哦,还有一件事。所有这些重复优化和测试的成本可能很容易通过购买更多硬件来抵消。当然,这根本不是不做任何优化的借口,我对您运行的网站数量印象深刻,尤其是如果您拥有大量用户,但这是一个平衡点,我希望您可以倾向于它的“更多硬件”方面更多。

关于c# - 一台服务器上 ASP.NET 站点的最大数量/限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8451541/

相关文章:

c# - 正确解码 Azure Blob SAS Url 以避免签名格式不正确错误

c# - UIRefreshControl 显示在 UICollectionViews 单元格上方

asp.net mvc javascript 回发

c# - System.IndexOutOfRangeException

python - 使用cython性能下降

ruby-on-rails - 对 Rails Web 应用程序进行压力测试的最佳方法?

c - 在只需要 1 位的情况下充分利用 256 个随机位

c# - 在 LINQ 语句中使用 async/await 时实际发生了什么?

c# - C# Flash 回调的简单例子

c# - 在 ASP.NET Identity Core 中,我可以更改 UserToken 主键吗