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