我为一家制造商提供 ERP 系统支持。我们的数据库时常出现应用程序性能问题,该数据库由第三方云提供商托管在 VMware 上。(他们是一家规模较小的提供商……不是 Google、Microsoft、Amazon 或类似的公司。)我总是想,他们的商业利益要求他们将尽可能多的客户虚拟机推到一台主机上,我不知道我们的性能下降是因为 CPU 就绪时间过长、内存膨胀还是磁盘资源争用。当然,他们的销售人员描绘了一幅美好的图景,但如果我追查其他未知因素,我如何确定问题出在哪里?如何在无法访问主机的情况下排除堆栈的基础设施层?我看到每个核心的 CPU 使用率都达到 100%,在查看正在运行的数据库会话时找不到明显的解释。(有时作业运行得很快,有时几乎相同的作业挂起而没有明显的阻塞。)
迁移到其他提供商或将这些机器回包到我们自己的服务器机房在近期都不太可能实现,但如果有确凿的证据来推动我们采取下一步行动就更好了。
编辑:客户机正在运行 Windows 2008 R2 Datacenter。
答案1
这是完全有可能的;几乎任何事情都可以在服务水平协议 (SLA) 中指定。由于您的提供商规模较小,我认为与大型提供商相比,您更有可能将此写入合同中。
然而,有一些注意事项:
有意义的 SLA 指定A)将提供什么,b)如何衡量,以及C)违约时会发生什么。确保您对这三项都满意;缺少其中任何一项的 SLA 都是一文不值。违约成本 (c) 应该足够大,以便为您的提供商提供真正的商业激励,避免违约。
您将无法在合同中期将其插入(除非您的提供商非常乐意
^W
)。续约是满足您未来需求的最佳时机。除非你准备离开当前的供应商(如果他们不签署你想要的新合同),否则你的请求很可能会被忽略,而且除非你有地方可以搬走,否则离开将是商业自杀。所以现在是时候开始对新供应商进行尽职调查,看看他们是否能满足你的要求,这样你在任何谈判中都有优势。
这将花费真实的金钱。大多数托管合同至少缺少一个有意义的 SLA 要素(见上文),因此只承诺尽最大努力提供某种服务。实际上,遵守有意义的 SLA 条款会让您的提供商付出真金白银;您必须预计他们在满足您的特定要求时产生的成本会转嫁给您——他们做生意不是为了自己的健康。现在进行尽职调查可以让您了解这可能会花费您多少钱,这样您就可以为管理层做好提升服务的实际成本的准备。
答案2
你不能。特别是如果你没有在合同中同意专用 CPU 核心之类的东西,你确实会得到你支付的东西。你没有理由抱怨,因为你得到的是你订购的东西。
查看你的合同。根据合同,CPU 核心是什么?
答案3
如果您安装了 VMware Tools,则可以检查多个性能计数器(在 perfmon.exe 中查看“VM 处理器”和“VM 内存”类别),以查明虚拟 CPU 核心是否真的始终获得物理核心的 100% 等效值。这样,您还可以检查 CPU 和内存预留和限制、膨胀等。
部分信息也可通过 VMware Tools 中包含的 CLI 工具查看,请参阅
"c:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe" help stat
如果您的合同规定您的虚拟 CPU 核心是“专用的”,那么应该有一个 CPU 预留,您可以按照上述方式进行检查。