我有一个 ASP.NET 应用程序,将托管在 Windows Server 2003 上。以下是该站点将拥有的平均流量估计。
- 独立页面浏览量——每天约 150,000 次
- 访客数量——每天约 30,000 人
机器当前硬件:
- Windows Server 2003,标准版 - Service Pack2
- 英特尔 X3330 - 2.66 GHz
- 2GB 内存
这个硬件能处理这么多流量吗?如果不能,那么扩展网站的理想组合是什么?
谢谢,
答案1
这完全取决于您的应用程序 - 一方面它可能只是打印“hello world”,另一方面它可能是一个复杂的决策支持平台 - 您需要对大量潜在用户进行基准测试 - 至少 50 个左右的模拟用户 - 以便您可以了解它的行为。
就套件而言,您有一个 2008 四核 CPU - 它可能满足您的需求,但让我担心的是,如果开始变热,您几乎没有“余地”。该芯片不能用具有超线程或 >4 核的较新的基于 nehelam 的芯片替换。如果我不知道我的机器会如何响应,我个人希望知道我可以转移到更快/更强大的芯片,或者确实有能力添加第二个 CPU。此外,我建议您转移到 4GB,因为内存现在非常便宜,而且对于这么小的投资来说,它可能有很大帮助。
祝你的新网站好运。
答案2
+1,@Chopper3 的扩展点。
如果您的安全模型允许,您可能希望将其托管在云中;例如 Amazon。当您可以在约 15 分钟内添加另一台服务器时,扩展问题的风险会降低。您还可以获得单个盒子无法实现的冗余。
我目前在 AWS 上运行一个网站,每天有大约 2500 名用户,>800K 个请求,在 3 个负载平衡的小型 Web 服务器(32 位,W2K8,1.7GB 内存,2 个处理器)+ 1 个中型数据库盒(64 位,W2K8,7.5GB 内存,2 个处理器)上。
所有机器的 CPU 平均使用率均低于 35%,并且有足够的空间应对高峰时段。
答案3
Vijay——回答你的第二个问题。
目前,Web 服务和数据库 (MsSql) 都与客户端应用程序共享同一台服务器。这引出了另一个问题。这是一个好主意吗,还是我们应该将它们部署在单独的服务器上?
根据您提供的估计,我们预计每分钟的浏览量超过 104 次。这是假设 24 小时内负载均等,但我们知道这不会发生。如果我是您的 DBA,我个人会建议将该 ap 从我的数据库服务器上删除。
您可能正在查看大量从磁盘读取的 ASPX 页面和数据库文件。这肯定会导致某种磁盘争用。如果我是您,我会调整此部署的大小以使其可扩展,将数据库服务器与应用程序放在同一台服务器上通常不是扩展的好主意。如果这是一个只能为 100 人提供 9 到 5 服务的小型部门应用程序,那没问题,但事实并非如此。