我们必须在我们的网络环境中做出设计选择。目前我们陷入了一个讨论,是否可以将清漆缓存服务器放入 vmware 环境或专用硬件上。
我设想的设置:
varnish/apache 服务器 -> tomcat 实例(在 vmware 中) -> mysql 集群
(apache 需要在那里,因为我们希望能够排除 varnish 来解决缓存问题)
此设置将为 30 多个 tomcat CMS 实例提供服务,其中 3 个将是大型站点
我们的主要问题是,如果我们将缓存服务器放在 VMWare 中,性能是否会大幅下降
这里有没有人有在 VMWare 中缓存服务器的经验?
如果您已经安装并运行了该软件,我建议您测量该服务器上的 CPU 性能。即使您在同一台服务器上运行其他东西,也可能无关紧要。如果 CPU 负载是该服务器能力的 33% 或更少,那么将其放在运行在类似或更强大硬件上的虚拟机中是现实的。
虚拟化带来的任何潜在性能下降都取决于共享相同硬件的其他虚拟机。理想情况下,如果您的 CPU 负载很重,您应该只在同一台服务器上安装负载较轻的虚拟机。网络 I/O 和磁盘 I/O 可能也是如此。但不要妄下结论。测量 CPU、网络和磁盘上的负载,然后根据这些测量结果做出决定。
在调整虚拟机服务器的大小时给自己留一些空间,以允许所有虚拟机的负载增长。
由于 Varnish 是围绕从内存中提供缓存数据而构建的,本质上它会减轻磁盘负载,这意味着它非常适合在虚拟机中运行。但是请确保物理服务器具有扩展 RAM 的能力,例如最大 16gigs RAM 的四核机器将为 Varnish VM 提供具有 4G RAM 的出色 Varnish 服务器。如果 Varnish VM 需要增长,您可以进行简单的 RAM 升级,而不是迁移到另一台物理服务器。
据我了解,虚拟服务器的一大瓶颈是高清访问。因此,如果您的计划是使用基于磁盘的缓存和虚拟硬盘驱动器,我会说您不会获得非常好的性能。
如果您为 VM 使用专用硬盘驱动器,或者如果您使用基于内存的缓存,理论上应该没问题。
我管理的其中一台服务器是一个 8 核专用机箱,具有 500GiB RAID 10 阵列和 12 GB RAM。它运行 VMware 服务器 2。它运行的虚拟机之一是具有 3 GB RAM 和 Apache 网络服务器、Exim、FTP、MySQl 等的单处理器 VM。该虚拟机上的负载徘徊在 1 到 4 之间,我们已经看到在设置第二个 VM 以充当缓存代理,将所有请求代理到第一台机器方面取得了很好的效果。这使第二个 VM 可以拥有额外的 CPU。