题 VM中的“不支持”应用程序?


我们从一家小型公司购买了一些软件,它是一个Windows 32位视频内容工作流程管理器,他们已经进行了一些定制。

我们在W2K3EE-32-bit上的VMWare ESXi 4.1u2 VM中运行此代码已经运行了一年多(这是他们支持在其上运行它)。

然后他们更新了他们的代码大约一个月左右,我们开始看到其中一个vCPU周期性地盯住100%,第二个vCPU相当空闲,比如5-7% - 所以我们只是假设代码的线程严重并且联系了他们它。

他们现在回到我们这里说他们的代码在虚拟机中不起作用,他们已经知道这个要求已经有18个月左右了,并且他们希望我们使用V2P。他们说他们只在VM内部运行时才会看到这个问题。我和他们的高级程序员在几个小时内打电话来讨论。

幸运的是,我们有一些物理可以做到这一点,有点耗时但可行。

我的问题是,鉴于这个VM没有直接接触任何硬件,是在一个非常现代的主机上,实际上有很低的要求(2 x vCPU,4GB,20GB启动虚拟磁盘,100GB数据虚拟磁盘,单个vNIC,没有其他)什么可能是在VM中运行它的问题,如果有的话?

显然我正在与他们强烈追求这一点,但我只是想知道是否有其他人找到了一个常规应用程序,它在某种程度上在虚拟机内行为不当而不是在物理上。


10
2018-03-13 10:40




两个vCPU都来自同一个CPU吗?你有没有设置每个真正的核心直接映射到vCPU?您是否正在做任何有趣的事情,比如在您的CPU上启用超线程?这些是一些问题,应该有助于解决任何可能导致它们在您可以解决的问题上放慢速度的问题。在与高级程序员交谈之后,您可能会有一个更好的想法,如何解决可能会因为在VM中运行而出现的问题,或者您将确定他们是否只是做错了。它可能只是代码是用java编写的。 - Wilshire
我让ESXi在进程调度方面做了自己的事情,并且> 55xx系列Xeons超线程不被认为是“有趣的”,它的工作原理非常有用 - 哦和代码的.NET 3.5顺便说一下。 - Chopper3
我知道MySQL Cluster显然也没有“正式”在虚拟化环境中工作。原因?不知道! :P - Ben Ashton


答案:


虽然我不能代表这个供应商或软件包,但我曾在一家大型(跨国)供应商工作,他们销售的软件之一在VMware上运行时有非常具体的已知问题。

在这种情况下,一个问题可能导致软件死锁,另一个问题可能导致数据损坏。因此,建议客户不要在虚拟环境中运行软件。有些人仍然这样做,在我所知道的所有情况下,他们遇到了一个或两个问题。

因此,虽然很少见,但有些情况下软件的运行效果与VMware中的预期相同。

虽然我意识到它并没有直接帮助你解决问题,但它确实表明VMWare并不总是完美的系统。

脚注:在这种情况下,供应商能够与VMware合作找到解决方案(一些代码修复,一些VMWare配置更改),他们现在有一些(非常具体的)指导如何在VMWare上运行该软件。


3
2018-03-19 12:29



这就是我很难过的事情,但感激听到 - 正如我在Janne的回答中提到的那样,我们习惯于在虚拟机中正常工作,发现这么奇怪的情况让我有点困惑,说实话所以,听你说我并不孤单,至少是安慰。我还没有从软件供应商那里听到任何积极的消息,但我知道他们正在调查这个问题,但不幸的是,无法想象一个月左右的修复。再次感谢。 - Chopper3


使用ESX v5和Monster VM限制(32vCPU 1TB RAM)时,VM出现问题的应用程序数量正在减少。我经历过的大多数是: - 依靠时间线性(实时流程或需要线性时间的应用程序......通常可以调整) - 导致大量硬件中断或上下文切换的应用程序

在大多数情况下,您应该能够要求您的vmware代表与这些人交谈。我相信vmware仍然有一群致力于让事情发挥作用的人(他们在早期就有这样的支持实验室)。

至于解决方案,我有一个类似的问题,VM具有高CPU使用率(但主机有足够的CPU资源)。我们通过迁移到具有Nehalem CPU的服务器并更改EVC中的CPU兼容级别来修复此问题(如果您的群集具有DRS / HA)


3
2018-03-19 13:10



感谢您的回复 - 当这真的不是一个黑白问题时,非常友好。您的示例非常有用,我将返回并特别检查上下文切换。哦,我们所有的服务器都在完全相同的CPU(X5690)上,EVC统一设置,但再次感谢。 - Chopper3


我已经看到VMware ESX + Debian 6 + OpenLDAP 2.4.x的类似问题(无论OpenLDAP的确切版本是apt-gettable ......)。

在日常操作中,它可以正常工作,但是导入大型LDIF文件(包含40万个左右的条目)的速度非常慢(比物理服务器慢50-100倍)。此外,对于长时间,高容量的基准测试,一切都在顺利进行,几毫秒的响应时间,但偶尔会出现500到25 000(!)毫秒的奇怪峰值。

使用物理服务器,我无法重现这些问题。是的,我花了大约三个星期试图隔离问题,将所有类型的参数从操作系统参数调整为slapd值到BerkeleyDB值...没有任何帮助。


2
2018-03-19 12:37



非常感谢您分享您的经验,我不能说我没有发现这整个事情有点奇怪 - 我是一个体验虚拟化的极客,我已经习惯了这样的事情,只是为了找到一个应用程序来做到这一点在某种程度上动摇了我的信念,所以听到我不处于孤立的位置是件好事。谢谢。 - Chopper3
另外两个例子:Atlassian说两者都有 Jira 和 Confluence 不建议在VM(ware)环境中运行。这些例外必须有一个模式,我只是还没弄清楚它可能是什么。我的OpenLDAP安装不是非常I / O密集(3 MB / s写入,而在基准测试期间峰值没有太多IOPS),它可能使用20-40%的CPU,大约150 MB RAM。不应该太难处理。也许它与线程有关,但vmstat报告上下文切换等处于正常水平。 - Janne Pikkarainen
我目前的理论是,这与操作系统的时间保持有关。 VMware过去曾遇到各种奇怪的时钟问题,即使现在有时你也必须传递一些问题 tsc=pit 引导期间的时尚参数,至少OpenLDAP对系统时钟精度非常敏感。也许我应该排除所有有问题的应用程序,看看它们是否都大量使用 gettimeofday() 或者。 - Janne Pikkarainen
再次感谢你,你在VM中的时间是正确的,它本身就是整个地方,所以我理解这一点,但我不禁想到,即使这是一个问题,它也是一个非常快速的问题。我们的供应商发现他们的代码,请注意,它实际上不是一个时间敏感的应用程序,它只是抓取视频内容并处理它,嗯。再次感谢。 - Chopper3