我们目前已经购买了一个新的服务器,64 GB的RAM和8核超线程支持。我们将使用以下方法构建一个系统:
因此,问题在于性能:如何最有效地使用核心?
更好的做法是安装单个操作系统,对各个应用程序进行调优,还是创建多个虚拟机,让每台机器利用其资源(例如核心)?
发布于 2015-05-28 12:42:54
使用虚拟机的好处不在于提高性能本身。主要思想是,在许多情况下,您希望系统隔离,也就是说,您不希望一个系统干扰另一个系统。这在云计算中起着重要作用,因为提供商可能为许多不同的客户托管设备,当然这些设备需要安全地分开。如果使用裸金属方法,在这种情况下,每个客户都有自己的机器,这些系统很可能没有得到充分利用。在一台物理机器上托管许多VM提高了利用率,同时仍然提供了一个安全的环境。
然而,宿主VM附带了自己的架空。软件可能无法在虚拟硬件上高效运行,虚拟机必须从主机管理,并且VM之间存在大量冗余。这就引入了对业绩的惩罚,而不是奖金。
在这种情况下,出于安全或维护的原因,您可能希望在单独的虚拟机中运行每个服务。如果您的某个服务被破坏,其他服务可能不会受到影响。此外,很容易对每个VM进行快照,这可以简化维护等工作。不过,我不会押注于性能的改善。
VM的另一种选择是操作系统-系统级虚拟化,例如容器技术,最近Docker在Linux上推广了这种技术。它们允许多个孤立的用户空间实例,消除了运行多个完整操作系统的需要,从而大大降低了性能损失,同时提供了VM的许多优点。码头集装箱易于展开,也支持快照。
发布于 2015-05-28 13:09:31
因此,问题在于性能--如何最有效地使用核心?
如果你在这个盒子上没有其他的东西在运行,我会用一个简单而简单的安装--尽管我不是把所有东西放在一个盒子上的朋友。几乎什么也比不上运行“本机”。正如@Benjamin B.所说: Docker是一个虚拟化级别,开销非常低。但是,除非您有理由虚拟化,否则我不会使用这样简单的设置。它至少为您的项目增加了额外的组织开销。
最好是创建一个单一的操作系统,并有效地优化我所描述的组件,还是创建几个虚拟机,让每台机器利用其核心?
为什么还要做更好的事情呢?比方说,您正在您的盒子上运行Ubuntu并使用Ubuntu安装VM:为什么Guest的行为与普通安装不同?
操作系统是为了有效地管理资源而构建的,所以在普通安装上运行所有的东西都是很有意义的。
如果您计划轻松地上下旋转实例/服务,或者如果需要更细粒度的隔离级别,那么虚拟化是很有趣的。
但是,因为它是你唯一的盒子,所以你可以简单的安装。
为什么要使用apache和nginx?
https://unix.stackexchange.com/questions/206089
复制相似问题