8 votes

Pourquoi l'utilisation de la mémoire de mon serveur est-elle si élevée avec seulement 5 joueurs en ligne ?

J'ai récemment lancé un serveur Minecraft Linux vanilla (v1.7.2) et j'ai eu des problèmes avec l'utilisation élevée de la RAM qui a provoqué la déconnexion du serveur. J'ai alloué un maximum de 3,5 Go.

J'ai redémarré le serveur il y a une heure et je l'ai surveillé. J'ai remarqué que lorsque les joueurs se déconnectent, l'utilisation de la mémoire ne diminue pas et que lorsque d'autres joueurs rejoignent le serveur, l'utilisation de la mémoire augmente.

  • Avec 5 joueurs connectés, l'utilisation de la RAM est de 63% (2.1 GB).
  • Avec seulement 3 joueurs sur le serveur, l'utilisation de la mémoire est de 58,9%.

J'obtiens également cette erreur lors du démarrage du serveur :

Votre plate-forme ne fournit pas d'API bas niveau complète pour accéder de manière fiable aux tampons directs. À moins d'une demande explicite, la mémoire tampon de la pile sera toujours préférée pour éviter une instabilité potentielle du système.

La commande que j'utilise pour démarrer le serveur est la suivante :

java -Xms512M -X3584M -jar minecraft_server.jar

Quelle pourrait être la cause de cette utilisation élevée de la mémoire et pourquoi ne diminue-t-elle pas lorsque le nombre de joueurs diminue ?

7voto

Robobenklein Points 390

Je vois un certain nombre de problèmes possibles qui peuvent aider votre serveur à fonctionner avec moins de ram.

PlayerViewDistance

Sur de nombreux serveurs, y compris le mien, le paramètre ViewDistance dans le fichier de propriétés de votre serveur peut être trop élevé. En diminuant cette valeur, moins de morceaux seront chargés pour les joueurs, mais si vous la réglez trop bas, c'est-à-dire en dessous de 3, vous ne pourrez pas voir assez loin pour passer un bon moment à jouer.

Ce problème est facilement résolu en diminuant le paramètre "view-distance" dans le fichier server.properties.

Arguments de la ligne de commande

Je vois un petit problème avec celui que vous avez collé dans votre question :

Java -Xms512M - X3584M -jar minecraft_server.jar

Je n'ai pas trouvé d'argument java qui soit simplement 'X', mais je suppose que vous essayez de fixer la limite supérieure de la mémoire à 3,5 Go. Voici à quoi cela devrait ressembler :

Java -Xms512M - Xmx3584M -jar minecraft_server.jar

Ou une version encore plus simple :

Java -Xms512M -Xmx3.5G -jar minecraft_server.jar

Si vous êtes prêt à expérimenter, abaissez la limite maximale de 512 Mo à chaque redémarrage, et mesurez les résultats. Dans certains cas étranges, vous pourrez constater une diminution de la mémoire utilisée.

Utiliser Java 7

D'après mon expérience passée, sur un serveur Ubuntu, l'exécution d'un serveur Craftbukkit sous Java7 au lieu de Java6 utilisait une quantité de RAM nettement inférieure.

Passer à Bukkit

Bien que cette option puisse être indésirable pour vous, elle fonctionne vraiment. Avec Craftbukit, il y a une multitude de plugins disponibles pour le téléchargement sur http://bukkit.org/ qui permettent d'augmenter les performances du serveur et de réduire l'utilisation des ressources.

0voto

Sam Lacrumb Points 10390

"Normal" dépend de l'endroit où se trouve chaque joueur et de ce qui se passe dans les morceaux chargés.

Si les joueurs sont dispersés, il est évident qu'un plus grand nombre de morceaux seront chargés et qu'il faudra gérer un plus grand nombre de mobs. De plus, les engins de redstone vont ajouter de nombreuses mises à jour de chunks à votre monde.

Vous devez comprendre que votre kilométrage peut varier . Certains peuvent s'accommoder de seulement 1,5 Go, d'autres devront se contenter de 3 Go. Il se peut que vous n'utilisiez pas du tout d'espace d'échange, et votre version de JRE a également son importance.

Donc oui, 2 Go est normal quand on joue avec 5 personnes.

-1voto

aman207 Points 3375

Essayez d'ajouter un drapeau de collecte de déchets à la fin des arguments de votre JVM.

-XX:+DisableExplicitGC

Et en voici deux autres qui sont spécifiquement pour Minecraft.

XX:+UseConcMarkSweepGC -XX:+UseParNewGC

-1voto

user73374 Points 9

L'utilisation de la mémoire ne diminue pas parce que le fichier mémoire du joueur est toujours stocké sur le serveur, ce qui fait que le serveur doit toujours se souvenir des informations sur le joueur pour les autres plugins (si vous en avez) et même si c'est de la vanille, juste pour le serveur lui-même afin de s'assurer qu'il se souvient de l'endroit où ils étaient, de leurs objets, etc. Je ne sais pas comment résoudre ce problème à part augmenter votre mémoire. Je ne sais pas comment résoudre ce problème à part en augmentant la mémoire. Je ne connais que la mémoire car lorsque je faisais tourner mon propre serveur localement, j'ai rencontré les mêmes problèmes et j'ai compris qu'en supprimant les .dat des joueurs, cela diminuait l'utilisation de la mémoire du serveur. De plus, si vous utilisez des plugins pour LogBlock ou autre, cela va entraîner une utilisation importante du serveur car il stocke chaque pause, chaque lieu, chaque ouverture de coffre, de meuble, de distributeur, de soucoupe, et plus encore, ce qui crée une grande quantité de données utilisées. En tout cas, j'espère que cela a été utile.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X