Me gustaría ejecutar un programa Java intensivo en memoria y limitar la cantidad de memoria física que puede usar.
¿Es posible configurar la JVM para usar no más de 1 gb de RAM y usar solo memoria virtual después de que haya usado los primeros 1 gb de RAM?
Me gustaría que el programa pueda tener tanto espacio de direcciones como sea necesario (varios GB), pero no quiero que use toda la RAM disponible en la máquina.
performance
memory
virtual-memory
instancia de Tom
fuente
fuente
Respuestas:
Encontré una solución viable para Ubuntu:
Utilizando la utilidad del sistema
ulimit
pude establecer la memoria física máxima yulimit
se llamó a muchos otros límites de recursos para cualquier proceso generado desde el shell .Todo lo que tenía que hacer era abrir un shell, llamar
ulimit
y luego iniciar el proceso.fuente
No, no conozco ninguna solución que te permita hacer esto. No estoy seguro de que esto sea posible sin grandes cambios arquitectónicos; después de todo, el sistema operativo generalmente decide caso por caso qué datos intercambiar y cuáles mantener en la RAM. No me queda claro que tal restricción sea incluso práctica; en cualquier caso, probablemente requeriría cambios profundos en el sistema operativo.
Contrapregunta: ¿Por qué crees que esto es necesario? El subsistema de memoria virtual de un sistema operativo moderno ha sido ajustado para brindarle el mejor rendimiento posible. ¿Qué te hace creer que puedes hacerlo mejor?
Más:
Si realmente tiene problemas de memoria, simplemente compre más RAM. 4GB cuestan alrededor de $ 100, solo comprarlo es probablemente más efectivo que pasar horas ajustando el subsistema VM ...
fuente