Application «non prise en charge» dans une machine virtuelle?

10

Nous avons acheté des logiciels à une petite entreprise, c'est un gestionnaire de flux de travail de contenu vidéo Windows 32 bits, ils ont été personnalisés.

Nous travaillons très bien depuis plus d'un an en exécutant ce code dans une machine virtuelle VMWare ESXi 4.1u2 sur W2K3EE-32 bits (c'est ce qu'ils prennent en charge pour l'exécuter).

Ensuite, ils ont mis à jour leur code il y a environ un mois et nous avons commencé à voir l'un des vCPU se fixer périodiquement à 100%, le deuxième vCPU est assez inactif, disons 5-7% - nous avons donc supposé que le code est mal enfilé et nous les avons contactés à propos de il.

Ils nous reviennent maintenant en disant que leur code ne fonctionne pas dans une machine virtuelle, ils connaissent cette exigence depuis environ 18 mois et qu'ils veulent que nous le V2P. Ils disent qu'ils ne voient ce problème que lorsqu'ils sont exécutés dans des machines virtuelles. J'ai un appel avec leur programmeur principal prévu dans quelques heures pour discuter.

Heureusement, nous avons quelques physiques sur lesquels nous pouvons le faire, un peu longs mais réalisables.

Ma question est cependant que, étant donné que cette machine virtuelle ne touche aucun matériel directement, est sur un hôte très moderne et a en fait des exigences très faibles (2 x vCPU, 4 Go, vdisk de démarrage de 20 Go, vdisk de données de 100 Go, vNIC unique et rien d'autre) quoi pourrait éventuellement être le problème avec son exécution dans une machine virtuelle, s'il y en a un?

Évidemment, je poursuis fortement cela avec eux, mais je me demandais simplement si quelqu'un d'autre avait trouvé une application régulière, qui se comportait mal à l'intérieur d'une machine virtuelle mais pas sur un physique.

Chopper3
la source
Les deux vCPU tirent-ils du même processeur? L'avez-vous configuré pour que chaque cœur réel mappe directement sur un vCPU? Faites-vous quelque chose de drôle comme l'activation de l'hyper-threading sur votre CPU? Ce sont des questions qui devraient aider à résoudre tout ce qui peut les ralentir de votre côté et que vous pouvez résoudre. Vous aurez probablement une meilleure idée après avoir parlé au programmeur principal, soit comment résoudre les problèmes qui peuvent survenir après l'avoir exécuté sur une machine virtuelle, soit vous saurez avec certitude s'ils le font simplement mal. Il se pourrait simplement que le code soit écrit en java.
Wilshire
Je laisse ESXi faire sa propre chose en termes de planification de processus, et sur> la série 55xx, l'hyperthreading Xeons n'est pas considéré comme `` drôle '', cela fonctionne et est très utile - oh et le code .NET 3.5 d'ailleurs.
Chopper3
Je sais que MySQL Cluster ne fonctionne apparemment pas «officiellement» non plus dans un environnement virtualisé. Raison? Ne sais pas! : P
Ben Ashton

Réponses:

3

Bien que je ne puisse pas parler pour ce fournisseur ou le progiciel, j'ai travaillé pour un grand fournisseur (multinational), où l'un des logiciels qu'ils ont vendus avait des problèmes connus très spécifiques lors de l'exécution sur VMware.

Dans ce cas, un problème peut entraîner un blocage du logiciel et l'autre un endommagement des données. En tant que tel, les clients ont été avisés de ne pas exécuter le logiciel dans un environnement virtuel. Certains l'ont toujours fait, et dans tous les cas que je connaissais, ils ont rencontré l'un ou les deux problèmes.

Ainsi, bien que cela soit rare, il peut y avoir des cas où les logiciels ne fonctionnent pas comme vous vous en doutez dans VMware.

Bien que je réalise que cela n'aide pas directement votre problème, cela montre que VMWare n'est pas toujours le système parfait.

Note de bas de page: dans ce cas, le fournisseur a pu travailler avec VMware pour trouver des résolutions (certains correctifs de code, certaines modifications de configuration de VMWare), et ils ont maintenant des conseils (très spécifiques) sur la façon d'exécuter le logiciel sur VMWare.

Sam
la source
C'est exactement le genre de choses dont je suis triste, mais reconnaissant d'entendre - comme je le mentionne à Janne dans sa réponse, nous nous habituons tellement aux choses qui fonctionnent correctement dans les machines virtuelles que trouver un ensemble de circonstances aussi étrange m'a laissé un peu perplexe pour être honnête , donc avoir de vos nouvelles que je ne suis pas le seul à être réconfortant au moins. Je n'ai encore rien entendu de positif de la part du vendeur de logiciels, mais je sais qu'il se penche sur le problème, je ne peux pas imaginer de solution pendant un mois, mais malheureusement. Merci encore.
Chopper3
3

Avec ESX v5 et la limite Monster VM (32vCPU 1 To RAM), le nombre d'applications ayant des problèmes avec VM diminue. La plupart de celles que j'ai connues sont soit: - s'appuyant sur le temps pour être linéaire (processus en temps réel ou applications qui doivent avoir du temps linéaire ... cela peut généralement être modifié) - applications provoquant de nombreuses interruptions matérielles ou changement de contexte

Dans la plupart des cas, vous devriez pouvoir demander à votre représentant vmware de parler à ces gars. Je crois que vmware a toujours une équipe de personnes dédiées à faire fonctionner les choses (ils avaient un laboratoire de support juste pour cela dans les premiers jours).

En ce qui concerne une solution, j'ai eu un problème similaire avec une machine virtuelle ayant une utilisation élevée du processeur (mais l'hôte ayant beaucoup de ressources CPU gratuites). Nous avons résolu le problème en migrant vers un serveur avec un processeur Nehalem et en modifiant le niveau de compatibilité du processeur dans EVC (si vous avez un cluster avec DRS / HA)

hdex
la source
Merci pour votre réponse - très gentil de votre part quand ce n'est vraiment pas une question en noir et blanc. Vos exemples sont très utiles, je vais revenir en arrière et examiner en particulier le changement de contexte. Oh et tous nos serveurs sont sur exactement le même CPU (X5690) avec EVC réglé uniformément, mais merci encore.
Chopper3
2

J'ai vu un problème similaire avec VMware ESX + Debian 6 + OpenLDAP 2.4.x (quelle que soit la version exacte d'OpenLDAP est apte-gettable ...).

Dans les opérations quotidiennes, cela fonctionne bien, mais des choses comme l'importation d'un fichier LDIF volumineux avec environ 400 000 entrées sont très lentes (50-100x plus lent qu'avec des serveurs physiques). De plus, avec une analyse comparative de longue durée et à volume élevé, tout se déroule bien avec un temps de réponse de quelques millisecondes, mais il y a parfois des pics étranges allant de 500 à 25 000 (!) Millisecondes.

Avec des serveurs physiques, je ne peux pas reproduire ces problèmes. Et oui, j'ai passé environ trois semaines à essayer d'isoler le problème, à régler toutes sortes de paramètres des paramètres du système d'exploitation aux valeurs slapd en valeurs BerkeleyDB ... rien n'y faisait.

Janne Pikkarainen
la source
Merci beaucoup de partager vos expériences, je ne peux pas dire que je ne trouve pas tout cela un peu étrange - je suis un connaisseur de la virtualisation des expériences et je suis tellement habitué aux choses qui fonctionnent que pour trouver une application qui fait ça a ébranlé mes croyances en quelque sorte, donc c'est bon d'entendre que je ne suis pas dans une position isolée. Je vous remercie.
Chopper3
1
Deux autres exemples: Atlassian dit que les deux Jiraet Confluencene sont pas recommandés pour s'exécuter dans un environnement VM (ware). Il doit y avoir un modèle pour ces exceptions, je n'ai tout simplement pas encore compris ce que cela pourrait être. Mon installation OpenLDAP n'est pas très gourmande en E / S (3 Mo / s d'écriture et pas trop d'IOPS dans les pics lors du benchmark), elle utilise peut-être 20 à 40% de CPU et environ 150 Mo de RAM. Ne devrait pas être trop difficile à manipuler. Peut-être que cela a quelque chose à voir avec le threading, mais vmstat signale que les changements de contexte, etc., sont au niveau normal.
Janne Pikkarainen
Ma théorie actuelle est que cela a quelque chose à voir avec le chronométrage du système d'exploitation. VMware a eu toutes sortes de problèmes d'horloge étranges dans le passé et même maintenant, parfois, vous devez passer certains tsc=pitparamètres élégants lors du démarrage, et au moins OpenLDAP est TRÈS sensible à la précision de l'horloge du système. Je devrais peut-être étudier toutes les applications problématiques et voir si elles utilisent toutes beaucoup gettimeofday()ou non.
Janne Pikkarainen
Merci encore, vous avez raison à propos du temps dans la machine virtuelle, c'est intrinsèquement partout, donc je comprendrais cela, mais je ne peux m'empêcher de penser que même si c'était un problème, ce serait un problème très rapide pour nos fournisseurs à repérer dans leur code, sachez que ce n'est pas vraiment une application sensible au temps, elle saisit simplement le contenu vidéo et le traite, hmmm. Merci encore.
Chopper3