Correction : Une erreur s'est produite lors de l'initialisation de la machine virtuelle, impossible de réserver suffisamment d'espace pour le tas d'objets
Découvrez comment résoudre l'erreur d'initialisation de la machine virtuelle Java sous Linux en ajustant les paramètres de mémoire pour garantir un fonctionnement optimal.
Bien que les applets Java ne soient plus une technologie web populaire de nos jours, il y a de nombreuses raisons de déployer une machine virtuelle Java directement sur un serveur Linux. Si vous essayez d'exécuter la commande java de Linux directement, que ce soit sur du matériel discret ou dans sa propre VM, vous pourriez recevoir le message suivant : “une erreur est survenue lors de l'initialisation de la VM, impossible de réserver assez d'espace pour le tas d'objets”.
Cela semble plutôt étrange car vous avez probablement assez de RAM pour exécuter la commande, mais c'est principalement dû à une particularité dans la façon dont les pages de mémoire physique et virtuelle sont utilisées. En spécifiant des tailles relativement grandes, vous devriez être en mesure de contourner complètement ce message et d'exécuter la commande java comme n'importe quelle autre.
Méthode 1 : Utilisation des options de ligne de commande
Si vous avez essayé d'exécuter java et que vous avez reçu ce message, vous avez probablement déjà utilisé la commande free pour vous assurer qu'il y a suffisamment de mémoire pour exécuter le programme.
Remarquez que sur notre machine de test, nous avions environ 2,3 Go de RAM physique et aucune page de mémoire virtuelle n'avait encore été utilisée. Si vous constatez que vous manquez de mémoire, fermez d'autres applications avant d'essayer à nouveau. En revanche, ceux qui ont constaté qu'ils disposent de suffisamment de mémoire libre peuvent essayer de spécifier une taille directement.
Par exemple, sur notre machine, nous avons pu exécuter la commande en tant que java -Xms256m -Xmx512M et cela a fonctionné comme prévu. Cela limite la taille du tas que la machine virtuelle Java essaie de réserver au démarrage. Étant donné qu'une machine virtuelle non restreinte pourrait théoriquement avoir des comportements inhabituels, elle pourrait générer des messages d'erreur sur un système par ailleurs libre. Vous voudrez peut-être jouer avec ces deux valeurs avant de trouver la bonne combinaison.
Cela peut poser un problème, peu importe ce sur quoi vous l'exécutez, puisque la JVM n'a rien à voir avec le type de VM que vous pourriez utiliser pour exécuter GNU/Linux.
Méthode 2 : Exporter les variables pour rendre le changement permanent
Lorsque vous trouvez une valeur qui fonctionne, vous pouvez l’exporter pour la rendre permanente pour cette session. Par exemple, nous avons utilisé export _JAVA_OPTIONS=’-Xms256M -Xmx512M’ depuis l'invite de commande bash, ce qui nous a permis d'exécuter la commande java seule sans autres options jusqu'à ce que nous nous déconnections de notre serveur.
Il fallait le relancer lorsque nous nous sommes connectés à une nouvelle session, donc vous voudrez peut-être l'ajouter à des scripts de démarrage pertinents si vous prévoyez d'utiliser la commande java assez souvent. Nous avons ajouté la ligne à notre fichier .bash_login et cela semblait fonctionner chaque fois que nous utilisions un prompt de connexion sans avoir à le relancer, bien que vous deviez peut-être trouver un autre emplacement si vous travaillez avec un shell différent.
Vous avez peut-être remarqué que seules certaines configurations matérielles déclenchent ce message d'erreur. Cela se produit généralement sur des machines avec beaucoup de RAM physique mais des ulimits plus bas sur son utilisation. Java essaiera d'allouer un énorme bloc, seulement pour se voir dire qu'il ne le peut pas, ce qu'il interprète comme un manque de mémoire.
Méthode 3 : Imprimer les options Java actuelles
Si vous avez travaillé à la ligne de commande et souhaitez une référence rapide à la valeur actuelle de _JAVA_OPTIONS, exécutez simplement echo $_JAVA_OPTIONS et cela imprimera immédiatement les valeurs actuelles. Cela est utile pour le dépannage lorsque vous essayez de déterminer les bons chiffres à tester.
Gardez à l'esprit que bien que ce correctif ne nécessite généralement pas d'autres ajustements, Java affichera le message “impossible de réserver assez d'espace pour le tas d'objets” si vous vous trouvez réellement en manque de mémoire virtuelle. Si c'est le cas, vérifiez quels processus sont en cours d'exécution et redémarrez peut-être le serveur si c'est une option. Vous pouvez également créer plus d'espace d'échange, mais si c'est un problème, il est généralement préférable d'essayer de le corriger d'une autre manière.
Dans le rare cas où vos paramètres semblent corrects mais que cela ne fonctionne pas, assurez-vous d'avoir installé le paquet Java 64 bits, car il devrait être immunisé contre ce problème. Les exigences de mémoire contiguë ne s'appliquent qu'à la version 32 bits de Java. Nous avons trouvé dans quelques cas que la version 64 bits essayait de créer une machine virtuelle 32 bits, donc la spécification de l'option -d64 sur la ligne de commande a corrigé le problème pour nous.
Questions et réponses que vous devriez connaître
Comment corriger une erreur survenue lors de l'initialisation de la VM ?
Pour corriger une erreur survenue lors de l'initialisation de la VM, suivez ces étapes :
- Désactiver ulimit :
- - Vérifiez les limites de mémoire appliquées par ulimit.
- Définissez la limite de mémoire pour la tâche sur
- Cela permet à la machine virtuelle Java de gérer la mémoire sans restrictions externes.
- Vérifier les paramètres de la JVM :
- Assurez-vous que l’argument de mémoire (comme -Xms ou -Xmx) est correctement configuré.
- Ajustez ces paramètres en fonction des ressources disponibles sur votre machine.
- Mise à jour de Java :
- Assurez-vous que vous utilisez la dernière version de Java. Les bugs sont sering corrigés dans les mises à jour.
- Configuration système :
- Vérifiez si d'autres processus consomment beaucoup de mémoire. Fermez les applications inutiles pour libérer des ressources.
- Logs et messages d’erreur :
- Consultez les messages d’erreur générés lors de l’initialisation de la VM pour identifier la cause précise du problème. En appliquant ces solutions, vous devriez pouvoir résoudre rapidement l'erreur d'initialisation de la VM.
Comment réinitialiser une machine virtuelle ?
Pour réinitialiser une machine virtuelle (VM), suivez ces étapes :
- Accès à l'interface de gestion : Ouvrez le logiciel de virtualisation que vous utilisez (comme VMware, VirtualBox, etc.).
- Sélection de la VM : Choisissez la machine virtuelle que vous souhaitez réinitialiser dans la liste des VM disponibles.
- Réinitialisation de la VM :
- -
Méthode 1
- : Cliquez sur le bouton « Réinitialiser » ou « Reset » dans la barre d'outils.
- Méthode 2 : Si le logiciel le permet, vous pouvez également faire un clic droit sur la VM et sélectionner l'option de réinitialisation.
- Méthode 3 : Dans certains cas, vous pouvez choisir d'appuyer sur le bouton de réinitialisation du panneau de contrôle de la VM.
- Confirmation : Vous devrez probablement confirmer la réinitialisation. Faites-le afin de continuer.
- Attendre le redémarrage : La VM se réinitialisera, effaçant le contenu de sa mémoire et revenant à son état initial. Cette procédure équivaut à effectuer une réinitialisation matérielle sur un ordinateur, et il est important de noter que tous les travaux non sauvegardés seront perdus.
Pourquoi ma machine virtuelle ne fonctionne pas ?
- Pilotes non signés : L'une des raisons courantes pour lesquelles votre machine virtuelle pourrait ne pas fonctionner est l'installation de pilotes non signés. Ces pilotes peuvent entraîner des conflits ou des problèmes de démarrage.
- -
Vérification des mises à jour :
- Examinez les pilotes qui ont été mis à jour ou installés depuis le dernier démarrage sécurisé. Identifiez ceux qui pourraient poser problème.
- Démarrage sécurisé : Si vous avez récemment modifié les paramètres de démarrage sécurisé, cela peut affecter le fonctionnement de la machine virtuelle. Assurez-vous que ce mode est correctement configuré.
- Compatibilité matérielle : Vérifiez si votre matériel est compatible avec la version de la machine virtuelle que vous utilisez.
- Ressources insuffisantes : Assurez-vous que votre système hôte dispose de suffisamment de ressources (RAM, CPU, espace disque) pour faire fonctionner la machine virtuelle. En examinant ces points, vous serez en mesure de diagnostiquer et potentiellement résoudre le problème.
Comment ouvrir la configuration de la machine virtuelle ?
Pour ouvrir la configuration de la machine virtuelle de manière rapide :
- Cliquez sur Démarrer.
- Tapez Fonctionnalités Windows dans la barre de recherche.
- Sélectionnez Activer ou désactiver les fonctionnalités Windows dans les résultats.
- Dans la fenêtre Fonctionnalités Windows, recherchez et sélectionnez Plateforme de machine virtuelle.
- Cliquez sur OK pour confirmer. Cette procédure vous permettra d'accéder aux paramètres nécessaires pour configurer votre machine virtuelle.
Maintenant que tu as fini de lire Correction : Une erreur s'est produite lors de l'initialisation de la machine virtuelle, impossible de réserver suffisamment d'espace pour le tas d'objets, nous t'invitons à explorer davantage la catégorie Applications. Tu y trouveras d'autres articles intéressants qui élargiront tes connaissances et te tiendront informé. Ne cesse pas de lire et de découvrir plus!
Laisser un commentaire