一台服务器上的多个数据库或虚拟服务器上的单个数

时间:2016-08-22 21:29:23

标签: sql-server hosting shared-hosting

我需要使用多个数据库,对于每个数据库,都会有一个使用它的程序。有一个问题,哪个选项对性能有好处?

  • 在一台服务器上创建多个数据库,一个实例
  • 对于每个程序和数据库,创建一个虚拟机并对其进行操作

2 个答案:

答案 0 :(得分:1)

这样想。

Sql Server Instance仅使用x量的磁盘空间和y量的RAM。

每个VM的Sql Server实例将使用x,y,然后VM的额外RAM和磁盘空间允许调用那些p和r并使n代表vms的数量。

因此对于选项一,您的总费用将是x& ÿ

对于选项2,您的总费用为x,y,n p,n r。

答案 1 :(得分:1)

在一台计算机上,一台计算机上的多个数据库几乎总是胜过同一台计算机上多个虚拟机上的单个数据库。

哇,这很难说: - /

单例实例在同一台机器上胜过多个虚拟机的原因是:

  1. 你没有支付虚拟化惩罚,
  2. 您无需保留多个操作系统副本,
  3. 您可以在数据库和
  4. 之间共享内存使用
  5. 每个数据库都会消耗他们所需的资源;不多也不少。
  6. 各种虚拟机技术可以缓解这些问题(例如内存膨胀),但这样做还是会受到一些惩罚。

    虚拟机在这方面的最大优势是扩展;一旦数据库在VM上,将该VM移动到第二台机器是微不足道的(另一台机器是三分之一,等等)。另外你得到了快照(这是你绝对最好的朋友evar)。

    您必须问自己的问题是您的实际扩展和成本要求(以及数据库的相对活动将是什么)。我的猜测,除非你有一些非常奇怪的要求,否则你的理想解决方案应该是:

    1. 在单个VM上运行一个数据库服务器
    2. 请确保将连接字符串集中在易于更改的位置,以防需要将其分解。
    3. 一般来说,基本的虚拟机惩罚值得为IMO支付,因为你获得了快照和硬件不可知性和可移植性(我个人很少在裸机上运行任何东西;它是所有虚拟机或容器)。除此之外,如果需要的话,很容易对数据进行分片,因此多个操作系统和堆栈所造成的损失不值得IMO。