Erreurs et solutions

« java.lang.OutOfMemoryError: Java heap space »

Relu le 6 septembre 2026 2 min de lecture

Contrairement à la plupart des plaintes de lag, celle-ci concerne vraiment la mémoire. Le serveur en a demandé plus qu'il n'en avait et s'est arrêté. La question qui mérite réponse : en avait-il besoin, ou quelque chose la gaspillait-il ?

Ce que vous constatez

  • java.lang.OutOfMemoryError: Java heap space dans la console
  • Le serveur s'arrête brutalement, parfois en pleine sauvegarde.
  • Cela survient après un temps de fonctionnement, pas au démarrage.

Pourquoi cela arrive

Java s'exécute sous un plafond mémoire fixe. Quand les données vivantes le remplissent et que la collecte n'arrive pas à libérer assez, le processus abandonne. Soit la charge a légitimement besoin de plus de place, soit quelque chose retient de la mémoire qu'il aurait dû libérer.

Que faire

  1. Notez quand cela se produit

    Au démarrage signifie que le forfait est trop petit pour ce que vous chargez : un modpack qui ne tient pas. Après des heures ou des jours signifie que quelque chose s'accumule.

  2. Si cela s'accumule, trouvez quoi

    /spark heapsummary liste ce qui occupe la mémoire. Une extension en tête qui grossit d'une exécution à l'autre est une fuite : mettez-la à jour ou retirez-la.

  3. Réduisez ce qui doit rester chargé

    Baisser la distance d'affichage, garder moins de chunks chargés en permanence et moins d'entités réduit la base que le serveur doit maintenir.

  4. Montez de forfait si la charge est simplement plus grande

    Un pack de cent mods en 4 Go n'est pas une fuite, c'est une mauvaise taille. C'est l'un des deux cas où plus de RAM est réellement la réponse.

Comment vérifier que c'est réglé

Le serveur tient une journée entière de charge normale sans l'erreur, et /spark heapsummary montre de la marge à la fin.

Bon à savoir

Un tel arrêt peut laisser le monde à moitié écrit. Si le serveur se comporte étrangement après un arrêt par manque de mémoire, restaurez la sauvegarde la plus récente au lieu de continuer à jouer.