2010-11-20 4 views
0

Cher tous, J'utilise Redhat linux, Comment régler la mémoire maximale pour un processus particulier. Par exemple, je dois allouer une utilisation maximale de la mémoire à Eclipse seul. Est-il possible d'allouer comme ceci. Donne-moi quelques solutions.Allocation de mémoire pour le processus dans Linux

+0

Je souhaite définir cette mémoire comme permanente pour un processus particulier. – Mohan

Répondre

1

Vous ne pouvez pas contrôler l'utilisation de la mémoire; vous ne pouvez contrôler que la taille de la mémoire virtuelle, et non la quantité de mémoire réellement utilisée, car cela est extrêmement compliqué (voire impossible) à connaître pour un seul processus sur un système d'exploitation prenant en charge la mémoire virtuelle.

Toute la mémoire utilisée n'apparaît pas dans l'espace d'adressage virtuel du processus à un instant donné, par exemple l'utilisation du noyau et la mise en cache du disque. Un processus peut changer les pages qu'il a mappées aussi souvent qu'il le souhaite (par exemple via mmap()). Une partie de l'espace adresse d'un processus est également mappée, mais n'est pas réellement utilisée, ou est partagée avec un ou plusieurs autres processus. Cela rend la mesure de l'utilisation de la mémoire par processus un objectif pratiquement irréalisable dans la pratique. Et mettre un plafond sur la taille de la VM n'est pas une bonne idée non plus, car cela entraînerait la mort du processus si elle essayait d'en utiliser plus. La bonne façon de procéder dans ce cas (pour un processus Java) consiste à définir la taille maximale du tas (via diverses options de démarrage JVM bien documentées). Cependant, l'expérience suggère que vous ne devez pas le définir à moins de 1Go.

+0

Ya Mark vous avez raison je ne pouvais pas trouvé de solution pour cette tâche.J'ai essayé la solution d'André.Mais cela contrôle la mémoire virtuelle seulement.Alors j'opte votre dernier point pour augmenter la taille de mémoire tas (pour Java) .Merci beaucoup . – Mohan

2
ulimit -v 102400 
eclipse 

... donne eclipse 100MiB de mémoire.

+0

Merci, Après avoir donné cette commande dans l'invite, il va allouer 100 Mo à éclipse. Ensuite, comment trouver cette mémoire allouée pour eclipse. – Mohan