¿Cuánta memoria se debe dejar al sistema operativo con una aplicación de servidor Java?

¿Cuánta memoria se debe dejar al sistema operativo con una aplicación de servidor Java?

Supongamos que estoy ejecutando Tomcat con -Xms256m -Xmx1024m, pero me gustaría aumentar mi uso del montón.

¿Cuál es el tamaño de montón seguro más grande que puedo asignar?

A los efectos de esta pregunta, suponga que el sistema tiene 5 GB de RAM y es un sistema z/Linux. Sin embargo, si es posible, me gustaría una respuesta general más amplia.

Además, si se trata de un duplicado, lo siento. Me sorprendió no encontrar más información sobre este tipo de cosas.

No duplicado de:Miréaquí, sin embargo, su respuesta parece ser sólo una suposición, sin respaldo. Las otras respuestas a esa pregunta no son muy claras y/o específicas de mi problema. 1) No estoy en un sistema de ventana de 32 bits, 2) No estaba preguntando sobre PermGen, aunque puede mencionarse en una buena respuesta, 3) La tercera respuesta decía "Finalmente, también debes tener en cuenta los otros cosas que se ejecutan en el servidor y que también necesitan RAM", pero esta no es una respuesta precisa. Por ahora solo me preocupa el uso de la memoria del sistema operativo.

Editar: Este es un sistema dedicado, por lo que lo que más me preocupa es el uso de la memoria del sistema operativo. No me preocupan otros programas.

GC

Respuesta1

El tamaño máximo de montón que querrá asignar se basará en la utilización de sus propios recursos por parte de su sistema, otros servicios que esté ejecutando, etc. Desea asignar un tamaño de montón que deje suficiente memoria disponible para el sistema operativo para evitar una paginación de memoria innecesaria. Esto es más un problema en Windows, pero el problema también se ve en Linux (soy más un experto en Windows que en Linux, lo siento mucho).

Primero, desea verificar la utilización de recursos de sus sistemas:http://www.cyberciti.biz/faq/linux-check-memory-usage/

A continuación, desea ver cómo está configurado su archivo de página:http://www.cyberciti.biz/faq/linux-check-the-size-of-pagesize/

Luego, tendrá que probar diferentes configuraciones según la información que recopiló anteriormente y observar la utilización del archivo de su página:http://www.cyberciti.biz/faq/linux-check-swap-usage-command/

Si el archivo de su página se utiliza mucho, entonces el tamaño de su montón es demasiado grande. Si se utiliza muy poco o nada, puede intentar aumentar el tamaño del montón para mejorar el rendimiento (los resultados reales del rendimiento variarán entre las diferentes aplicaciones Java, y aumentar el tamaño del montón puede hacer que algunas aplicaciones funcionen peor debido a la forma en que se utilizan). están programados).

Desea asegurarse de asignar la cantidad adecuada de memoria para que su sistema operativo tenga suficiente RAM libre para mantener fácilmente el archivo de página y que su aplicación tenga suficiente memoria asignada. En Windows, intento mantener al menos un 25% de RAM libre bajo carga. Probaría diferentes configuraciones y observaría el rendimiento de su sistema.

UNA NOTA MÁS IMPORTANTE: en Java 8, no es necesario definir estos elementos en absoluto, Java 8 parece ser mejor para mantener estos valores por sí solo, en lugar de tenerlos asignados estáticamente.

información relacionada