Codecachesize auf AMD64

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Codecachesize auf AMD64

    Hallo Java Freunde,
    ich hab da auch mal eine Frage :D

    Ich habe einen AMD64 Server mit 64-Bit Linux.
    Diesen habe ich in mehrere OpenVZ Instanzen virtualisiert. Den einzelnen VEs möchte ich nur ungern vollen Zugriff auf den Arbeitsspeicher geben, also habe ich irgendwo eine Grenze gezogen.

    java -version
    Error occurred during initialization of VM
    Could not reserve enough space for code cache


    Im Internet bin ich fündig geworden und habe erfahren, dass Java bei 64 Bit Systemen ganze 1 GB an Adressspeicher reserviert (nicht belegt)
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6245770
    In Java 6 wird die Option wieder auf 48 MB reduziert

    Als Workaround kann ich meine Scripts mit nem schönen Prefix aufrufen
    java -XX:ReservedCodeCacheSize=48m -version
    java version "1.5.0_06"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
    Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_06-b05, mixed mode)


    Aber wie krieg ich diese Änderung dauerhaft durchgesetzt?
    Wenn ich -XX:ReservedCodeCacheSize=48m zur jvm.cfg hinzufüge erhalte ich wieder einen neuen Fehler:

    Warning: missing VM type on line 22 of `/usr/lib/jvm/java-1.5.0-sun-1.5.0.06/jre/lib/amd64/jvm.cfg'
    Warning: missing VM type on line 22 of `/usr/lib/jvm/java-1.5.0-sun-1.5.0.06/jre/lib/amd64/jvm.cfg'


    Parallel habe ich die Frage im Sun Developer Forum gestellt.
    Bisher keine Reaktion, aber wenn dort eine Lösung gefunden wird werde ich hier natürlich posten