我们有一个16核服务器充当虚拟机主机。
其中一个 VM 客户机是 Windows Server 2012 机箱,它托管一个 .NET Web 服务,该服务向手机应用程序的用户提供实时信息。
我们现在需要为即将推出的新应用添加第二个 .NET Web 服务。(类似的 Web 服务,几乎相同的代码库)
现有的虚拟服务器已经处于高负载之下,因此,在我看来,我们有两个选择:
1 - 同一虚拟服务器上的新站点
- 增加 VM Guest 实例的 RAM 和 VCPU 分配。
- 将 Web 服务作为新站点添加到现有的 IIS8。
- (可选)将每个 Web 服务的应用程序池固定到其自己的专用 CPU 核心。(使用 IIS8 CPU 掩码)
2 - 新的虚拟 Windows Server
- 创建一个全新的 VM Guest(在同一主机上),具有其自己的专用 RAM 和 VCPU 资源。
我很难在这两个选项之间做出选择——性能上有区别吗?
选项 2 的吸引力在于,直观地看,单独的虚拟服务器感觉与其他服务器“隔离”,因此在我看来,它提供了自己的无争用资源(CPU、RAM、IP 地址),从而性能更好。
但是,当我考虑这个问题时,由于两者都在同一台主机上运行,真的有什么区别吗?更不用说操作系统本身的许可成本了。
假设我们反复选择选项 1,即多个 IIS Web 服务,IIS 性能是否会降低到使用单独的第二个 Windows Server(尽管是同一主机上的虚拟服务器)更有意义的程度?而且我想知道是否会出现网络瓶颈,因为所有 Web 服务都指向同一个 IP 地址。
答案1
啊,这是性能优化的老问题了。这个问题永远没有唯一的答案,除了尝试一下并准备改变它。
由于添加新网站很简单,我会先尝试一下。处理器锁定可能没有必要,而且很可能只会导致资源匮乏。
当性能耗尽时,您可以调整现有 VM 的大小或将一些网站移至新 VM。或者,您甚至可以创建多个 Web 服务器 VM,让它们运行所有网站,并使用负载平衡器。