我们从一家小公司购买了一些软件,这是一个 Windows 32 位视频内容工作流管理器,他们对其进行了一些定制。
我们在 W2K3EE-32 位(他们支持在其上运行)的 VMWare ESXi 4.1u2 VM 中运行此代码已经一年多了,运行正常。
然后他们在大约一个月前更新了他们的代码,我们开始看到其中一个 vCPU 周期性地保持在 100%,第二个 vCPU 相当空闲,比如说 5-7% - 所以我们只是假设代码的线程很糟糕并就此事与他们联系。
他们现在回复我们说他们的代码在虚拟机中无法运行,他们知道这个要求已经有 18 个月了,他们希望我们将其 V2P 化。他们说只有在虚拟机中运行时才会看到这个问题。我和他们的高级程序员约了几个小时来讨论这个问题。
现在幸运的是我们有一些体检可以做这个,虽然有点耗时但可行。
然而我的问题是,鉴于这个虚拟机不直接接触任何硬件,位于一个非常现代的主机上,并且实际上要求很低(2 x vCPU、4GB、20GB 启动虚拟磁盘、100GB 数据虚拟磁盘、单个 vNIC 并且没有其他),如果有的话,在虚拟机中运行它可能是什么问题?
显然,我正在强烈地与他们一起追求这一点,但我只是想知道是否有其他人发现过常规应用程序,它在虚拟机内部行为不当,但在物理上却没有。
答案1
虽然我不能代表该供应商或软件包发言,但我曾为一家大型(跨国)供应商工作过,他们销售的一款软件在 VMware 上运行时存在非常具体的已知问题。
在这种情况下,一个问题可能会导致软件死锁,另一个问题可能会导致数据损坏。因此,建议客户不要在虚拟环境中运行该软件。有些人仍然这样做,而且据我所知,他们遇到了其中一个或两个问题。
因此,虽然这种情况很少见,但有时软件在 VMware 中的运行情况并不如您预期。
虽然我意识到它不能直接解决您的问题,但它确实表明 VMWare 并不总是完美的系统。
脚注:在这种情况下,供应商能够与 VMware 合作找到解决方案(一些代码修复、一些 VMWare 配置更改),并且他们现在有一些关于如何在 VMWare 上运行软件的(非常具体的)指导。
答案2
随着 ESX v5 和 Monster VM 限制(32vCPU 1TB RAM),与 VM 存在问题的应用程序数量正在减少。我遇到的大多数问题都是:- 依赖于时间线性(实时进程或需要具有线性时间的应用程序...这通常可以调整)- 应用程序导致大量硬件中断或上下文切换
在大多数情况下,您应该能够要求您的 VMware 代表与这些人交谈。我相信 VMware 仍然有一支致力于让事情正常运转的团队(他们早期有一个专门为此提供支持的实验室)。
至于解决方案,我遇到了类似的问题,即虚拟机 CPU 使用率过高(但主机有大量可用 CPU 资源)。我们通过迁移到具有 Nehalem CPU 的服务器并更改 EVC 中的 CPU 兼容性级别(如果您有具有 DRS/HA 的集群)解决了该问题
答案3
我在 VMware ESX + Debian 6 + OpenLDAP 2.4.x 上看到了类似的问题(无论 OpenLDAP 的具体版本是什么,apt-gettable...)。
在日常操作中,它运行正常,但导入包含 400 000 个左右条目的大型 LDIF 文件等操作非常慢(比物理服务器慢 50-100 倍)。此外,在长时间、大容量基准测试中,一切都进展顺利,响应时间为几毫秒,但偶尔会出现奇怪的峰值,范围从 500 到 25 000(!) 毫秒。
使用物理服务器我无法重现这些问题。是的,我花了大约三周时间试图找出问题所在,调整了从操作系统参数到 slapd 值再到 BerkeleyDB 值的所有参数……但毫无效果。