Allouer plus de 2Go de RAM à son serveur Minecraft

L'oignon-19

Aventurier
4 Juillet 2020
7
1
0
1
26
Bonjour.
Suite à la création d'un serveur Minecraft Spigot sous Linux (Debian), j'ai voulu lancer le serveur mais à ma grande surprise il ne voulait pas se lancer avec plus de 2Go max (ma machine possède 8Go DDR2 800Mhz) :
start.sh :

java -Xms2G -Xmx8G -jar spigot.jar nogui

Message d'erreur :


Invalid maximum heap size: -Xmx8G
The specified size exceeds the maximum representable size.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Mais lorsque je lance le serveur avec 2Go max (
java -Xms2G -Xmx2G -jar spigot.jar nogui )
Le serveur se lance sans problème mais avec 1/4 de ma RAM.

J'espère que quelqu'un pourra m'aider !
 
Bonjour,

Tu as probablement installé Java 32 bits, tu peux vérifier avec :
Code:
java -d64 -version

Et allouer plus de mémoire n'accélère en rien la vitesse. Le seul problème c'est si le programme n'a pas assez de mémoire, auquel cas il perdra du temps à essayer d'en trouver. Si tu lui réserves trop de mémoire, il n'utilisera que ce dont il a besoin (probablement que ~ 2 Go), et donc les 6 Go restant qui sont totalement inutilisés ne pourront pas être utilisés par les autres programmes, donc ce sont les autres programmes qui perdront du temps à chercher de la mémoire. Le système d'exploitation est un programme.

Pour l'image, c'est comme réserver un hôtel complet pour trois personnes. Oui, tu ne perdras pas de temps à trouver une chambre, mais tu mets en pause tous les autres clients qui attendent à la réception.

Cordialement,
ShE3py.
 
  • J'aime
Reactions: L'oignon-19
Premièrement merci pour ta réponse.
Et oui c'est bien java 32 bits qui est installé sur ma machine :

Unrecognized option: -d64
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit

Mais le seul processus qui tourne sur la machine est le serveur Minecraft.
Avec seulement deux joueurs connectés le quota de mémoire est presque épuisé.
J'aimerais vraiment savoir si le serveur peut utiliser autant de RAM qu'il le souhaite.
 
Essaye d'installer Java 8 en 64 bits, par contre comment vois-tu le quota de mémoire ?

Les systèmes 32 bits sont limités à des adresses de 32 bits, soit 2^32 ≈ 4,3 x 10^9, donc en théorie ils ne peuvent pas gérer plus de 4 Go de mémoire. En pratique il s'agit plus de l'ordre des 2/3 Go.

Et sinon, le serveur peut utiliser autant de mémoire qu'il souhaite tant qu'il ne dépasse pas ton -Xmx.
 
Essaye d'installer Java 8 en 64 bits, par contre comment vois-tu le quota de mémoire ?

Les systèmes 32 bits sont limités à des adresses de 32 bits, soit 2^32 ≈ 4,3 x 10^9, donc en théorie ils ne peuvent pas gérer plus de 4 Go de mémoire. En pratique il s'agit plus de l'ordre des 2/3 Go.

Et sinon, le serveur peut utiliser autant de mémoire qu'il souhaite tant qu'il ne dépasse pas ton -Xmx.
Mais comment lui faire dépasser le Xmx sachant que je ne peux pas le mettre au delà de 2Go ?
Et pour voir la RAM utilisée c'est avec la commande /tps
 
La commande /tps affiche :
[15:48:08] [Server thread/INFO]: TPS from last 1m, 5m, 15m: *20.0, *20.0, *20
.0
[15:48:08] [Server thread/INFO]: Current Memory Usage: 1472/2048 mb (Max: 204
8 mb)

Et peux-tu me dire comment je passe sur java 64 bits ?
 
Je ne sais pas comment tu héberges ton serveur, mais il suffit d'installer Java comme tout autre programme. Il faut juste faire attention à bien prendre Java 8, 64 bits.

Et sinon le /tps indique que le serveur utilise ~ 75% de la mémoire, par contre vu les tps tu n'as pas trop de problème niveau mémoire pour l'instant.
 
  • J'aime
Reactions: L'oignon-19
Bonsoir,

Java 32 bits sur un Linux c'est étonnant, à moins que l'OS est aussi en 32 bits ?
Que renvoies la commande uname -r ?
 
Dernière édition: