我正在运行一个 ASP.NET 网站,该网站带有一个 SQL Server 数据库和另一个服务器端应用程序,该应用程序负责处理以支持 Windows 2008 Web Server 32 位操作系统上的网站。
服务器的 CPU 使用率通常为 95%,其中 sqlserver.exe、w3wp.exe 和我的处理应用程序占用了大部分 CPU 资源,并且大部分 RAM 也被使用 - 我知道这是正常的。
我打算投资一些钱来配置我的服务器,以提高我的网站速度并支持它的发展,想知道是否有人对此情况有什么建议。
升级到同一价格四核 Xeon 2.66Ghz X3353大约与运行两个核心 2 四核 Q8200系 统。
我是否应该花钱升级到单台 Xeon 机器或将数据库和 asp.net 前端拆分到规格较低的 Core 2 四核系统之间?
当前服务器参考 -
答案1
两个盒子将使你的系统复杂度增加一倍以上,可靠性降低一半以上。如果你在不了解系统不够快的原因的情况下重新构建系统,那么很有可能最终得到一个比当前系统更慢的系统。
您是否已分析过瓶颈?
让你的系统更快的最可靠方法就是用完全相同但更快的东西替换它。
答案2
我同意 Ryaner 的观点。如果唯一的成本是购买硬件,那就选择 2 台机器的设置。如果可能的话,我宁愿不“混合”前端和后端负载。
此外,从安全角度来看,最好将它们分开,这样其中一个服务的漏洞并不意味着其他服务/服务器直接出现故障。
当然,现在您有两台服务器,您必须:
- 修补
- 提供电力/冷却
- 提供机架空间
- 监视器
- 对所需的操作系统/应用程序进行许可
您的服务是“面向互联网”的吗?如果是这样,那么出于安全原因,将它们分开几乎是必须的,我会在它们之间添加防火墙。
此外,尽早将应用程序拆分为前端/后端将使您能够轻松地成长;随着负载的增加,您可能需要更多的应用程序服务器或数据库资源,或者......因此,越早确保您的应用程序可以拆分/扩展,您就越早发现以后可能出现的任何潜在的依赖关系/问题。
从长远来看,向外扩展(即,为同一问题添加更多服务器,参见谷歌 ;)通常比向上扩展更简单/更便宜。当然,通常数据库更难拆分,因此如果您很幸运并且非常成功,数据库可能会成为瓶颈。
即使由于某种原因(机架空间/电源/冷却)您只能使用一台“硬件”服务器,我还是建议您购买一台功能强大的服务器,并研究虚拟化以将负载分成 2 个逻辑服务器。是的,我知道这会增加许可等费用,但如果我没记错的话,MS 允许您在一台“裸机”服务器和最多 (2?/3?) 台虚拟服务器上运行单个 Win2008 许可证。VMWare 还有一个免费的服务器产品 (VMWare 服务器),您可以使用。
我的 0.002 美分。
我很乐意听取支持/反对的意见。
此致
哈维尔
附言:我的背景是安全方面,而不是 Web 应用程序方面,所以也许我所说的不是最佳解决方案,但我知道,不在单个服务器/故障点上“堆积”功能会让我感觉更舒服。
答案3
至强:
英特尔® 至强® 处理器 X3353(12M 高速缓存,2.66 GHz,1333 MHz FSB)
C2:
英特尔® 酷睿™2 四核处理器 Q8200(4M 缓存,2.33 GHz,1333 MHz FSB)
我肯定会选择 Xeon 并且会尽快换成 64 位。
答案4
如果成本实际上相同(Windows 需要许可证),那么拆分它们是一个不错的选择。Web 前端可能比 SQL 服务器需要更少的内存,并且可以使用不同的规格。您还可以更好地调整操作系统以适应它们所服务的不同类型的数据。
不过,初始成本往往只占机器整个使用寿命成本的一小部分。