Quiero limitar la memoria máxima utilizada por la JVM. Tenga en cuenta que esto no es solo el montón, quiero limitar la memoria total utilizada por este proceso.¿Cómo establecer el uso máximo de memoria para JVM?
Respuesta
utiliza los argumentos -Xms<memory>
-Xmx<memory>
. Use M
o G
después de los números para indicar Megs y Gigs de bytes respectivamente. -Xms
indica el mínimo y -Xmx
el máximo.
No debería tener que preocuparse por la pila que pierde la memoria (es muy poco común). El único momento en que puede hacer que la pila se salga de control es con recursividad infinita (o muy profunda).
Esto es solo el montón. Lo siento, no leí tu pregunta completamente al principio.
Debe ejecutar la JVM con el siguiente argumento de línea de comando.
-Xmx<ammount of memory>
Ejemplo:
-Xmx1024m
que permitirá un máximo de 1 GB de memoria de la JVM.
Eso no es cierto, de acuerdo con este hilo, hay varias formas en las que se puede filtrar fuera del montón http://stackoverflow.com/questions/1475290/java-memory-mystery-do-i-have-a-leak – erotsppa
Tiene razón, hay muchas maneras de tener problemas de memoria que no están relacionados con la pila. Sin embargo, no son muy comunes. – jjnguy
Bastante seguro de que no puede controlar el tamaño de la memoria que no es de montón, ¿verdad? –
La respuesta anterior es algo así como correcta, no se puede controlar correctamente la cantidad de memoria nativa que asigna un proceso de Java. Depende de lo que está haciendo tu aplicación.
Dicho esto, dependiendo de la plataforma, es posible que pueda utilizar algún mecanismo, ulimit por ejemplo, para limitar el tamaño de un Java o cualquier otro proceso.
Simplemente no espere que falle correctamente si alcanza ese límite. Las fallas de asignación de memoria nativa son mucho más difíciles de manejar que las fallas de asignación en el montón de Java. Existe una posibilidad bastante buena de que la aplicación se cuelgue, pero depende de cuán crítico sea para el sistema mantener el tamaño del proceso bajo que podría ser adecuado para usted.
El NativeHeap puede increasded por -XX: MaxDirectMemorySize = 256M (por defecto es 128)
nunca he utilizado. Quizás lo encuentres útil.
Dudo que op quería esto: la memoria nativa se usa cuando realiza una llamada al código C/C++ desde java. La memoria nativa –
también se usa cuando se realizan llamadas nio si asigna los búferes con memoria directa. (... y classloaders, y la información del hilo ....) – stu
Si desea limitar la memoria de JVM (no el tamaño de la pila) ulimit -v
Para tener una idea de la diferencia entre JVM y la pila de memoria, echar un vistazo a este excelente artículo http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the-java-process.html
- 1. Aumento del tamaño máximo de almacenamiento dinámico de JVM para aplicaciones con uso intensivo de memoria
- 2. Problemas de memoria JVM
- 3. Cómo imprimir el uso de la memoria Java jvm para depuración?
- 4. Cómo establecer el ancho máximo de dijit.ToolTip?
- 5. El uso máximo de la memoria no va más allá de un límite
- 6. Memoria de proceso Vs Heap - JVM
- 7. Argumentos personalizados para establecer en Weblogic JVM
- 8. cómo establecer el ancho máximo para un diseño
- 9. force jvm para devolver la memoria nativa
- 10. (Play 2.0) Establecer el tamaño máximo de POST para AnyContent
- 11. Establecer el tiempo máximo de ejecución para exec() específicamente
- 12. Valores predeterminados de memoria JVM
- 13. ¿Cómo limitar el uso de memoria virtual por node.js?
- 14. limitar el uso de memoria de Node.js
- 15. Cómo establecer correctamente una JVM TimeZone
- 16. Establecer el número máximo de filas visibles para listview
- 17. cómo elegir el tamaño del montón JVM?
- 18. JQuery para establecer un ancho máximo dinámico
- 19. JVM devolviendo memoria a OS
- 20. css - establecer ancho máximo para seleccionar
- 21. Uso de Jconsole para pérdida de memoria
- 22. Servidores de aplicaciones Límite máximo de memoria
- 23. JavaFX ¿Cómo establecer el tamaño máximo/mínimo de la ventana?
- 24. ¿Limitaciones prácticas de la memoria JVM y el uso de la CPU?
- 25. Algoritmo para aplanar el uso máximo en el tiempo?
- 26. ¿Cómo perfil el uso de la memoria?
- 27. Android OSM droid - establecer el nivel de Zoom máximo
- 28. cómo reducir el uso de memoria solr?
- 29. Uso de TPL cómo configuro un tamaño máximo de subprocesos
- 30. Uso de memoria del Playframework
es posible que también desee ver MaxPermSize. – pmu
pregunta por la memoria JVM. Lo que has dicho es el tamaño del montón. Ambos son diferentes – vsingh
Para reiterar lo que otros comentarios mencionan, Xms y Xmx solo configuran el montón.Aunque la configuración de estas variables tiene un efecto indirecto en el espacio no dinámico, la persona que realiza la pregunta intenta establecer si hay una forma de configurar el uso total de memoria (montón + no-montón) – murungu