虽然不是一个技术问题,但仍然是一个有效的问题。场景:
HP ProLiant DL380 Gen 8 配备 2 个 8 核 Xeon E5-2667 CPU 和 256GB RAM,运行 ESXi 5.5。给定供应商的系统有 8 个虚拟机。4 个虚拟机用于测试,4 个虚拟机用于生产。每个环境中的 4 个服务器执行不同的功能,例如:Web 服务器、主应用服务器、OLAP DB 服务器和 SQL DB 服务器。
配置 CPU 份额以防止测试环境影响生产。所有存储在 SAN 上。
我们曾遇到过一些关于性能的疑问,供应商坚持认为我们需要为生产系统提供更多内存和 vCPU。但是,我们可以从 vCenter 中清楚地看到,现有分配没有受到影响,例如:主应用服务器上的 CPU 利用率每月徘徊在 8% 左右,偶尔会飙升至 30%。峰值往往与备份软件启动同时发生。
RAM 的情况也类似 - 整个服务器的最高利用率约为 35%。
因此,我们使用 Process Monitor (Microsoft SysInternals) 和 Wireshark 进行了一些调查,我们向供应商提出的建议是,他们首先进行一些 TNS 调优。然而,这不是重点。
我的问题是:我们如何让他们承认我们发送给他们的 VMware 统计数据足以证明更多的 RAM/vCPU 无济于事?
--- 更新日期:2014 年 12 月 7 日 ---
有趣的一周。我们的 IT 管理人员表示,我们应该更改虚拟机分配,现在我们正在等待业务用户的停机时间。奇怪的是,业务用户说应用程序的某些方面运行缓慢(我不知道与什么相比),但他们将在我们可以关闭系统时“让我们知道”(抱怨,抱怨!)。
另外,系统的“缓慢”方面显然不是HTTP(S)元素,即:使用的“瘦应用程序”最多用户。听起来,主要财务机构使用的“胖客户端”安装显然“很慢”。这意味着我们现在在调查中考虑客户端和客户端-服务器交互。
由于这个问题的最初目的是寻求帮助,是否要走“戳它”的路线,还是直接做出改变,而我们现在正在进行改变,我将使用长颈的回答。
感谢大家的意见;像往常一样,serverfault 不仅仅是一个论坛 - 它也有点像心理学家的沙发 :-)
答案1
我建议您按照他们的要求进行调整。然后对性能进行基准测试,向他们表明这没有什么不同。您甚至可以使用更少的内存和 vCPU 进行基准测试,以证明您的观点。
此外,“我们付钱给你是为了用实际的解决方案来支持软件,而不是猜测。”
答案2
只要您确信自己符合他们记录的给定系统规格即可。
那么他们关于需要更多 RAM 或 CPU 的任何主张都应该能够得到支持。作为他们系统的专家,我会要求人们对此负责。
询问他们具体情况。
系统上提供的哪些信息表明需要更多 RAM 以及您如何解释这一点?
系统上提供的哪些信息表明需要更多 CPU 以及您如何解释这一点?
乍一看,我拥有的数据与您告诉我的内容相矛盾。您能解释一下为什么我可能对此有误解吗?
我将这 [明显的数据系列] 解释为 [明显的解释]。您能确认我对我的问题的解释正确吗?
过去与支持人员打交道时,我也问过同样的问题。有时我是对的,他们没有正确地关注我的问题。然而,其他时候,我错误的我对数据的解释不正确,或者没有在我的分析中包含其他重要的数据。
无论如何,这两种情况都是净收益对我来说,要么我学到了一些我以前不知道的新东西,要么我让他们的支持团队更加深入地思考我的问题以找到正确的根本原因。
如果支持团队无法为您提供一个让您满意的逻辑论证扩展(您需要有开放的心态来妥协自己,合理地接受您对数据的解释是错误的),那么这应该在他们的回复中非常明显。即使在最坏的情况下,您也可以将此作为升级问题的基础。
答案3
最重要的是能够证明您正在使用最佳实践来分配系统,尤其是为 SQL 服务器预留的 RAM 和 CPU。
话虽如此,最简单的方法就是按照要求进行调整,至少是暂时的。如果没有其他办法,供应商往往会拖延时间。我数不清有多少次需要做这样的疯狂事情才能让电话另一端的技术人员相信,这确实是他们的软件出了问题。
答案4
我曾经从事过支持工作——而你所问的部分内容声音非常理性(可能确实如此):但在进行他们要求的“绩效提升”之前,你需要问自己几个问题
- 你在跑步吗至少已经满足供应商所述的最低系统要求了吗?
- 如果您至少达到最低 sysreqs,那么您是否已经达到其“推荐”的系统设置?
供应商在 100 次中有 99 次(根据我的经验 - 无论是在支持方面还是在客户/现场方面)甚至不会处理与性能相关的问题,直到/除非系统符合其文档的要求。也许这是一个在 1 个 CPU 和 512M RAM 的情况下 99.5% 的时间运行良好的系统 - 但如果系统要求 4 个 CPU 和 4G RAM,而您只有 2 个 CPU 和 1G RAM,那么他们完全有权要求分配更多资源*。
他们要求你增加系统资源可能是因为他们在实验室/开发中发现了一些东西,如果你超过特定的阈值,问题就会神奇地消失;如果是这样的话,是的,这是他们调试能力差的一个例子,但请记住,他们没有时间消除每一个可能出现的错误/问题 - 有些只需要解决,如果是这种情况,那就去做吧。
还有一种可能性是,您看到的问题甚至不是“他们的”软件的一部分,而是他们依赖的其他来源(供应商、OSS 库等)的组件。我遇到过与交换大小、BEA WebLogic 和Sun JRE在顾客几年前。
总结:
简而言之,与他们的支持团队合作,根据需要升级,直到找到解决方案 - 但是当某些建议/调试步骤/修复听起来不切实际或毫无意义时,不要感到惊讶。
*如果它确实不“需要”那些额外的资源,你很可能可以为未来的版本提交文档错误/ RFE - 但不要强行推行这条路线,直到你证明这不是当前的问题
^我写的一本电子书可能会对这个主题有所帮助:调试和支持软件系统