数据库应该与Web服务器在同一个盒子上还是分开的

我使用SQL Server 2005和IIS6。 我有每个单独的盒子(四核CPU,4G)。 客户想整合到一个盒子上。 这是一个有400个用户的企业应用程序。 现在性能还是不错的,但是我质疑任何节省来巩固与性能的变化,服务的pipe理。 因此,1)未来的特点/增长,2)性能,3)模块化,其他?,移动到1盒或继续2。

我几乎100%是基于Linux的,但我认为一些常见的原则适用。

如果您希望进行扩展,即使仅使用虚拟化软件,也可以将服务器分开,从而使您可以根据需要轻松添加节点,并在两者之间实现负载平衡 – 同时还提供更好的安全性,因为您只需打开所需的端口。

在我find的数据库服务器上,我发现它对于邮件服务器等辅助服务或使用后端数据库的其他一些configuration工具来说都是非常有用的…这些脚印相对较小,可伸缩性也不是那么重要。

没有足够的信息告诉你要采取哪个方向,这取决于你的环境。 要做出正确的呼叫,您将需要收集目前状态下两台服务器的指标,并分析您所得到的结果。 无论如何,你需要真实的数据来certificate这一点。 除了“可能很大”之外,“企业应用程序”对于度量方面没有太多的说法。 你也许可以结合起来,但是如果你必须购买更多马力的新硬件,那么你可能会在自己的脚下开枪。

一些想法(主要从数据库的angular度来看):

  • 一个安全理论是,如果攻击者获得访问你的Web服务器,那么他们就可以访问数据库服务器。 这可能也可能不一定是真实的,这取决于攻击者如何获得访问权限,如何设置Web服务器上的安全性以及如何存储连接string。 不过,这当然值得关注。

  • SQL默认情况下会尽可能多地占用服务器上的内存。 当将Web和SQL Server托pipe在同一个盒子上时,发现他们都可以接受的开心的地方将需要一些计划和一些调整。 随着数据库的增长和应用程序的使用,这将会不断变化。 不是说它不会不断地改变,只是有时很难find两个服务之间的平衡

  • 您将不会有从Web服务器到SQL服务器的networking连接的开销。

合并有什么好处?

  • 保养? 几乎不会有什么困难。
  • 成本? 也许…现在。

如果你想两全其美,你可以在一台主机上安装两台虚拟机。 当他们中的任何一个变得太大时,你可以把它移动到一个新的主机上(或者也许是一个新的专用机器)。

一般来说,我build议不要在生产环境中的同一个盒子上运行它们; 除了安全隐患,configuration和维护将不会像两个angular色总是争夺资源一样容易。

一些安全人员不喜欢在同一台机器上安装Web服务器和数据库服务器。 如果我们在单独的分区上安装IIS,我们会让它滑动。

我会说,尝试在你的系统的非生产副本,看看。

任何积极支持的重要应用程序都应该能够进行性能testing。 获得生产级硬件盒(与现在部署到生产中相同的规格 – 不会过时),并用一个盒子和两个盒子进行testing。

我的猜测是,将数据库放在同一台机器上可以提供更好的性能,前提是数据库+应用程序适用于内存 – 否则会更糟糕。 这实际上意味着将它们放在同一台机器上会提高性能,但会降低可伸缩性。 这种性能与可伸缩性的权衡是典型的。

但是,尝试一下,看看。 一定要使用生产级的硬件和一些软件来模拟至less你的生产水平的使用。

对于鲁棒性(使用单个机器)也有影响。 但是你可以让其他人备份,而不会影响生产(取决于你使用的是什么types的复制/集群等)。