Voglio limitare la memoria massima utilizzata dalla JVM. Nota, questo non è solo l'heap, voglio limitare la memoria totale utilizzata da questo processo.Come impostare l'utilizzo massimo della memoria per JVM?
risposta
utilizzare gli argomenti -Xms<memory>
-Xmx<memory>
. Utilizzare M
o G
dopo i numeri per indicare rispettivamente Megs e Gigs of bytes. -Xms
indica il minimo e -Xmx
il massimo.
Non dovresti preoccuparti della perdita di memoria dello stack (è molto raro). L'unica volta in cui puoi avere lo stack fuori controllo è con una ricorsione infinita (o molto profonda).
Questo è solo l'heap. Scusa, non ho letto completamente la tua domanda all'inizio.
È necessario eseguire la JVM con il seguente argomento della riga di comando.
-Xmx<ammount of memory>
Esempio:
-Xmx1024m
che consentirà un massimo di 1 GB di memoria per la JVM.
Questo non è vero, in base a questa discussione, ci sono molti modi in cui è possibile filtrare all'esterno dello heap http://stackoverflow.com/questions/1475290/java-memory-mystery-do-i-have-a-leak – erotsppa
Hai ragione, ci sono molti modi per avere problemi di memoria non relativi allo stack. Tuttavia, non sono molto comuni. – jjnguy
Assicurati che non puoi controllare le dimensioni della memoria non heap, vero? –
La risposta sopra è abbastanza corretta, non è possibile controllare con garbo la quantità di memoria nativa allocata da un processo Java. Dipende da cosa sta facendo la tua applicazione.
Detto questo, in base alla piattaforma, è possibile utilizzare alcuni meccanismi, ad esempio, per limitare le dimensioni di un java o qualsiasi altro processo.
Non aspettatevi che fallisca con grazia se raggiunge il limite. Gli errori di allocazione della memoria nativa sono molto più difficili da gestire rispetto agli errori di allocazione nell'heap java. Ci sono buone probabilità che l'applicazione si arresti in modo anomalo ma dipende da quanto è critico per il sistema mantenere le dimensioni del processo che potrebbero ancora adattarsi.
Il NativeHeap può essere increasded dal XX: MaxDirectMemorySize = 256M (di default è 128)
ho l'ho mai usato. Forse lo troverai utile
Dubito che op abbia voluto questo: la memoria nativa viene usata quando si effettua una chiamata al codice C/C++ da java. –
La memoria nativa viene anche utilizzata quando si effettuano chiamate nio se si allocano i buffer con memoria diretta. (... e classloaders e informazioni sui thread ....) – stu
Se si desidera limitare la memoria per JVM (non la dimensione heap) ulimit -v
Per avere un'idea della differenza tra JVM e memoria heap, dare un'occhiata a questo eccellente articolo http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the-java-process.html
- 1. Impostazioni memoria JVM per specifiche2
- 2. Problemi di memoria JVM
- 3. Limite massimo della memoria dell'applicazione in iPad?
- 4. Java heap JVM massimo prenotabile in anticipo
- 5. Limiti pratici della memoria JVM e dell'utilizzo della CPU?
- 6. Impostazioni memoria JVM
- 7. Come posso aumentare la memoria JVM?
- 8. Gestione della memoria JVM e libro di raccolta dei rifiuti?
- 9. Allocazione della memoria all'esterno di JVM e utilizzo all'interno di JVM
- 10. Tracciamento * massimo * dell'utilizzo della memoria con una funzione Python
- 11. Come impostare il ppsize massimo in R?
- 12. Allocazione memoria JVM nel contenitore Docker (LXC)
- 13. Come impostare un limite massimo per IBInspectable Int
- 14. come impostare limite massimo per l'impaginazione in CakePHP
- 15. Limita memoria di processo jvm su ubuntu
- 16. Come impostare la memoria video della virtualbox vagabonda
- 17. Restrizione della JVM per non invocare GC
- 18. Come aumentare il numero massimo di thread JVM (Linux 64 bit)
- 19. Argomenti personalizzati da impostare in JVM Weblogic
- 20. Dimensioni della memoria Java della classe vs della memoria?
- 21. qual è il modo giusto per impostare i parametri JVM in eclissi
- 22. Come rendere la memoria di rilascio JVM su OS
- 23. Come monitorare l'utilizzo della JVM di grandi pagine di memoria in Windows 7?
- 24. Come comunicare tra due JVM utilizzando file mappati in memoria?
- 25. Come stampare l'utilizzo della memoria jvm Java a scopo di debug?
- 26. Impostazione dell'utilizzo massimo della CPU per processo in Windows
- 27. Come forzare l'utilizzo massimo della CPU
- 28. Come impostare il jvm args predefinito sul plugin gradle dell'applicazione?
- 29. Come può l'agente JVMTI impostare un flag JVM all'avvio?
- 30. Precisione della ScheduledExecutorService su OS normale/JVM
potresti voler guardare anche MaxPermSize. – pmu
chiede informazioni sulla memoria JVM. Quello che hai detto è la dimensione dell'heap. Entrambi sono diversi – vsingh
Per riattivare ciò che gli altri commenti menzionano, Xms e Xmx configurano solo l'heap.Sebbene la configurazione di queste variabili abbia un effetto indiretto sullo spazio non heap, la persona che pone la domanda sta tentando di stabilire se esiste un modo per configurare l'utilizzo della memoria totale (heap + non heap) – murungu