2 votes

Faire en sorte que la JVM n'utilise la mémoire virtuelle qu'après avoir utilisé 1 Go de RAM.

J'aimerais exécuter un programme java gourmand en mémoire et limiter la quantité de mémoire physique qu'il peut utiliser.

Est-il possible de configurer la JVM pour qu'elle n'utilise pas plus de 1 Go de RAM et qu'elle n'utilise que la mémoire virtuelle après avoir utilisé le premier Go de RAM ?

J'aimerais que le programme puisse disposer d'autant d'espace d'adressage que nécessaire (plusieurs Go), mais je ne veux pas qu'il utilise toute la RAM disponible sur la machine.

3voto

smink Points 39640

J'ai trouvé une solution viable pour Ubuntu :

Utilisation de l'utilitaire système ulimit J'ai pu définir la mémoire physique maximale et de nombreuses autres limites de ressources pour tous les processus créés à partir du Shell. ulimit a été appelé.

Tout ce que j'avais à faire était d'ouvrir un Shell, d'appeler ulimit puis lancez le processus.

1voto

sherbang Points 2675

Non, je n'ai pas connaissance d'une solution qui vous permettrait de faire cela. Je ne suis même pas sûr que cela soit possible sans changements architecturaux majeurs ; après tout, le système d'exploitation décide généralement au cas par cas quelles données doivent être échangées et lesquelles doivent être conservées en mémoire vive. Je ne suis pas sûr qu'une telle restriction soit même pratique ; en tout cas, elle nécessiterait probablement de profondes modifications du système d'exploitation.

Contre-question : Pourquoi pensez-vous que cela soit nécessaire ? Le sous-système de mémoire virtuelle d'un système d'exploitation moderne a été finement ajusté pour vous offrir les meilleures performances possibles. Qu'est-ce qui vous fait croire que vous pouvez faire mieux ?

Plus :

Si vous avez vraiment des problèmes de mémoire, achetez simplement plus de RAM. 4 Go coûtent environ 100 $, il est probablement plus efficace d'en acheter que de passer des heures à régler le sous-système VM...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X