RAM zuweisung anpassen Raspberry Pi 4

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo, ich bin neu hier.
    Ich habe ein kleines Problem mit der zuweisung des RAM´s für einen Minecraft Server auf dem Raspberry Pi 4 mit 4GB RAM.
    Undzwar handelt es sich um diesen code. Mit ihm starte ich den server mit der gewünschten Ram Menge:

    java -Xmx1024M -Xms1024M -jar server.jar nogui
    Hier wird nur 1GB Ram verwendet, da ich aber den Raspberry Pi 4 mit 4GB RAM besitze, würde ich gerne etwas mehr davon verwenden.
    Was ist eine sinnvolle Ram Menge und wo genau muss ich es wie eintragen? Ich benutze übrigens das Betriebssystem Buster Lite und möchte nichts auf dem Pi laufen lassen außer dem Server. Das gleiche Projekt habe ich mit dem Pi 3 schon erfolgreich durchgeführt, da habe ich die RAM angaben jedoch nicht geändert.

    Ich hoffe ich habe es ins richtige Forum gestellt und ihr könnt mir helfen.

    Vielen Dank schonmal vorab.

  • Siehe man java. Die 1024M sind 1024 Megabyte. Wenn du die Menge erhöhen willst, dann einfach die Zahl 1024 erhöhen. Eine sinnvolle Menge Ram ist die die ausreicht. ;)

    Wenn ich dem Server 3500M zuweise, bekomme ich folgende Meldung:

    pi@raspberrypi:~/minecraft $ java -Xmx3500M –Xms3500M -jar server.jar nogui

    Error occurred during initialization of VM

    Could not reserve enough space for 3584000KB object heap

  • Naja, der RPi 4 hat auch "nur" 4096 Megabyte Speicher, welcher auch für die GPU benutzt wird. Wie viel MB per Default zugewiesen sind, weiss ich nicht, aber bestimmt was zwischen 256 MB und 1024 MB. Du hast vermutlich versucht mehr Speicher zuzuweisen, als vorhanden ist. Probier es mal mit 3072 oder weniger. Braucht der Server denn so viel Speicher?

  • Ich würde mit

    free -h

    schauen wieviel frei ist

    interessant wäre die Ausgabe von:

    df -h

    Die Zeile mit:

    tmpfs ... .... .... ..... /run

    Bei mir stand da Verf. 800M und nur 3% belegt

    Das hab ich auf 100M runtergedrückt mit einem eintrag in.

    /etc/fstab

    none /run tmpfs defaults,size=100M 0 0

    Jetzt müsste

    free -h

    mehr Anzeigen.

  • Naja, der RPi 4 hat auch "nur" 4096 Megabyte Speicher, welcher auch für die GPU benutzt wird. Wie viel MB per Default zugewiesen sind, weiss ich nicht, aber bestimmt was zwischen 256 MB und 1024 MB. Du hast vermutlich versucht mehr Speicher zuzuweisen, als vorhanden ist. Probier es mal mit 3072 oder weniger. Braucht der Server denn so viel Speicher?

    Wenn ich es mit 3072M probiere, bekomme ich wieder eine Meldung:

    pi@raspberrypi:~/minecraft $ java -Xmx3072M –Xms3072M -jar server.jar nogui

    Error occurred during initialization of VM

    Could not reserve enough space for 3145728KB object heap

    Ist es denn richtig, dass ich es bei beiden eingebe oder muss ich da noch was beachten?

  • Was bedeutet diese Zeile bzw was bewirke ich damit?

    pi@raspberrypi:~ $ free -h

    total used free shared buff/cache available

    Mem: 3.8Gi 107Mi 2.6Gi 8.0Mi 1.1Gi 3.6Gi

    Swap: 99Mi 0B 99Mi

    pi@raspberrypi:~ $ df -h

    Filesystem Size Used Avail Use% Mounted on

    /dev/root 59G 1.7G 55G 3% /

    devtmpfs 1.8G 0 1.8G 0% /dev

    tmpfs 2.0G 0 2.0G 0% /dev/shm

    tmpfs 2.0G 8.5M 1.9G 1% /run

    tmpfs 5.0M 4.0K 5.0M 1% /run/lock

    tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup

    /dev/mmcblk0p1 253M 52M 201M 21% /boot

    tmpfs 391M 0 391M 0% /run/user/1000

  • Die Frage die ich mir stelle, ob der Server selber ein Ramlaufwerk erstellt.

    Das weis ich nicht, so würde ich sagen du kannst 2G geben.

    /dev/shm <-- die Zeile

    Ich habe es mit 2000M ausprobiert und bekomme wieder eine Fehlermeldung:

    pi@raspberrypi:~/minecraft $ java -Xmx2000M –Xms2000M -jar server.jar nogui

    Error: Could not find or load main class –Xms2000M

    Caused by: java.lang.ClassNotFoundException: –Xms2000M

  • Die Frage die ich mir stelle, ob der Server selber ein Ramlaufwerk erstellt.


    edit: Versuch doch mal 3.6G

    free sagt avaible 3.6G

    Mit 3600M oder 3.6G funktioniert es auch nicht

    Gibt es einen speziellen Grund dafür, den vom Java für Minecraft verwendeten Speicher zu erhöhen?

    Minecraft ist ziemlich Ram lastig, wenn es flüssig laufen soll und man große server aufbaut. Vor allem wenn man gewisse Mod Packs installieren möchte ist der Server auf viel Arbeitsspeicher angewiesen.

  • Das Ramlaufwerk (tmpfs) /run verbraucht bei dir 1.9G

    Das kann man noraml problemlos runterschrauben auf 100M, würde ich sagen, ich glaub daduch wird das Ramlaufwerk (tmpfs) von /dev/shm größer und somit mehr Platz.

    df -h

    reboot

    df -h

    könnte aufschluss geben ob /dev/shm mehr ram bekommt.

    Ich glaub das ist der shared Memory.

    Es kann auch sein das es verkehrt ist.

  • Sieht so aus als würde -Xmx bei 32 Bit Betriebssystemen (Buster ist scheinbar noch 32 Bit) bis 1628MB gehen.

    Siehe https://stackoverflow.com/questions/1263…-java-heap-size

    EDIT: Die Parameter Xms/Xmx haben folgende Funktion (techwelkin.com)

    -Xms specifies the minimum (i.e. initial) amount of memory

    -Xmx specifies the maximum amount of memory that JVM could use.

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

    2 Mal editiert, zuletzt von VeryPrivat (22. Oktober 2019 um 20:53)

  • ich würde mich rantasten.

    -Xms2m -Xmx64m

    Heap starts at 2 MB and grows to a maximum of 64 MB.

    -Xms100m -Xmx100m

    Heap starts at 100 MB and never grows.

    -Xms20m -Xmx1024m

    Heap starts at 20 MB and grows to a maximum of 1 GB.

    -Xms50mHeap starts at 50 MB and grows to the default maximum.

    -Xmx256mHeap starts at default initial value and grows to a maximum of 256 MB.


    If you exceed the limit set by the -Xmx option, the JVM generates an OutofMemoryError.


    Konkret:

    java -Xms1G –Xmx2G -jar server.jar nogui

    Optimismus ist nur ein Mangel an Informationen?

  • Immer wieder die Fehlermeldung

    pi@raspberrypi:~/minecraft $ java -Xmx2G –Xms1G -jar server.jar nogui

    Error: Could not find or load main class –Xms1G

    Caused by: java.lang.ClassNotFoundException: –Xms1G

    pi@raspberrypi:~/minecraft $ java -Xmx2048M –Xms1024M -jar server.jar nogui

    Error: Could not find or load main class –Xms1024M

    Caused by: java.lang.ClassNotFoundException: –Xms1024M

    pi@raspberrypi:~/minecraft $ java -Xms1G –Xmx2G -jar server.jar nogui

    Error: Could not find or load main class –Xmx2G

    Caused by: java.lang.ClassNotFoundException: –Xmx2G

  • Sieht so aus als würde -Xmx bei 32 Bit Betriebssystemen (Buster ist scheinbar noch 32 Bit) bis 1628MB gehen.

    Siehe https://stackoverflow.com/questions/1263…-java-heap-size

    EDIT: Die Parameter Xms/Xmx haben folgende Funktion (techwelkin.com)

    -Xms specifies the minimum (i.e. initial) amount of memory

    -Xmx specifies the maximum amount of memory that JVM could use.

    Ich habe gerade Spaßeshalber mal den ganz normalen code ausprobiert so wie er zu anfangs geschrieben war und mit dem pi 3 funktioniert hatte. hier bekomme ich dennnoch die Fehlermeldung:

    pi@raspberrypi:~/minecraft $ java -Xmx1024M –Xms1024M -jar server.jar nogui

    Error: Could not find or load main class –Xms1024M

    Caused by: java.lang.ClassNotFoundException: –Xms1024M

  • Das spricht dafür, dass die besagten 1628MB das Maximum sein könnten - wurde wohl überlesen ;)

    Probiere es doch mal mit: java -Xmx1628M -Xms1628M -jar server.jar nogui

    EDIT: Eventuell zwischendrin neu starten - vielleicht ist mit der Probiererei schon der ganze RAM "verschossen"

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • "Machen sie es so". :) Zum Test, wenn es mit 1628M funktioniert, mit dem Wert 1629M probieren. Wenn es mit Erstem funktioniert und mit Zweitem nicht, dann weisst du Bescheid. Und sag der RPi Fondation, das der RPi 4B+ bitte 64 Bit voll unterstützten muss und mindestens 8 GB RAM + 32 GB nur für Java haben soll. ;)

    PS: Bei 32 Bit wäre ich von einem Maximum von 2048M ausgegangen. Ist das Java spezifisch?

  • Anscheinend nicht. Das sind ja auch nur 1-2 Pixel Unterschied. Vermutlich noch abhängig vom verwendeten Zeichensatz. Die goldene Forenlupe geht auf jeden Fall an veloci. :bravo2: Wie das Zeichen da wohl hingekommen ist. Und dann noch mittels Copy/Paste die ganze Zeit mitgezogen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!