Minecraft affiche OutOfMemoryError ou se ferme par manque de RAM
Une erreur mémoire peut venir d’un nombre trop élevé de chunks, d’un modpack trop lourd ou d’un plugin qui conserve des objets.
Une erreur mémoire peut venir d’un nombre trop élevé de chunks, d’un modpack trop lourd ou d’un plugin qui conserve des objets. Augmenter la RAM sans mesurer ne corrige pas toujours la cause.
Procédure étape par étape
-
Lire la fin du log
Cherchez OutOfMemoryError, Java heap space, GC overhead ou un arrêt code 137.
-
Réduire la distance d’affichage
Diminuez view-distance et simulation-distance dans server.properties, puis redémarrez une seule fois.
-
Isoler les plugins et les mods
Mettez à jour les plugins et les mods, puis désactivez temporairement le dernier ajouté si la hausse de la mémoire a commencé après son installation.
-
Ajuster les ressources
Si l’usage normal atteint régulièrement la limite, choisissez une offre avec plus de RAM en gardant une marge de 15 à 20 %.
Réglage prudent
view-distance=8
simulation-distance=6
Diagnostiquer la mémoire avec spark
spark health
spark heapsummary
Comprendre la limite de mémoire
Le serveur tourne dans un conteneur dont la RAM est plafonnée par votre offre. Java y réserve le tas (heap), où vivent les chunks, les entités et les données des plugins ; le reste sert à Java lui-même et aux threads.
Deux symptômes en découlent. Java heap space signifie que le tas est plein. Un arrêt avec code 137, sans message Java, signifie que le conteneur entier a dépassé sa limite et que le système a tué le processus.
La « Commande de démarrage », dans « Démarrage », montre comment la taille du tas est fixée : -Xmx ou -XX:MaxRAMPercentage. Si vous la modifiez, ne donnez jamais à -Xmx toute la RAM de l’offre : gardez une marge d’environ 10 à 15 % pour Java lui-même.
Mesurer avant de changer d’offre
La ligne « Mémoire » de la console mesure tout le conteneur. Java garde la mémoire réservée même après un nettoyage : une valeur haute mais stable est normale. Notez plutôt quand l’erreur survient : à la connexion de plusieurs joueurs, pendant une exploration, ou après un temps de fonctionnement de plus en plus court.
- spark health affiche l’usage du tas et la durée des pauses du ramasse-miettes. spark est intégré aux versions récentes de Paper, ou s’installe comme plugin.
- spark heapsummary liste les objets qui occupent le plus de mémoire et aide à désigner le plugin ou le mod en cause.
Questions fréquentes
Que signifie l’arrêt avec code 137 ?
Le système a tué le processus parce que le conteneur a atteint sa limite de RAM ; Java n’a pas eu le temps d’écrire d’erreur. Réduisez la charge, vérifiez dans « Démarrage » que -Xmx n’est pas trop proche de la RAM de l’offre, puis changez d’offre si l’usage normal reste au maximum.
Que signifie GC overhead limit exceeded ?
Java passe presque tout son temps à libérer de la mémoire sans en récupérer assez. La cause est la même que pour Java heap space : trop de données chargées ou une fuite.
Pourquoi l’erreur unable to create native thread apparaît-elle ?
Elle concerne les threads, pas le tas : le serveur a atteint la limite de processus ou de mémoire du conteneur, et le panel ouvre la fenêtre « Limite de ressources possiblement atteinte ». Un plugin qui crée des threads en boucle en est souvent la cause : retirez le dernier ajouté, puis contactez le support avec l’erreur affichée si elle persiste.
Ajouter de la RAM suffit-il à régler le problème ?
Seulement si l’usage normal dépasse vraiment la limite, par exemple avec un modpack lourd. Face à une fuite, plus de RAM retarde le plantage de quelques heures sans le supprimer. Mesurez, corrigez la cause, puis passez par « Changer d’offre » si la marge reste insuffisante.