Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/10/2009, à 15:43

Mlok

Comment limiter l'utilisation de la mémoire par un logiciel?

Bonjour,

( j'ai posté un sujet légèrement similaire ici http://forum.ubuntu-fr.org/viewtopic.php?pid=2969754 mais j'ai entre temps compris que le problème était ailleurs, donc voici une nouvelle discussion toute neuve)

j'utilise régulièrement l'excellent logiciel meld pour comparer des dossiers et fichiers. Un de ses gros défauts, c'est que lorsqu'il compare de grosses masses de données, il freeze complètement mon ordinateur. Je suis obligé de l'éteindre méchamment pour pouvoir reprendre la main... Pas joli.

J'ai d'abord cru qu'il s'agissait d'un problème de priorité (commande "nice") mais je m'apercois qu'il s'agit en fait d'un problème de mémoire : meld occupe toute la RAM disponible ainsi que tout le swap. Comment faire pour limiter l'utilisation de la mémoire par un logiciel pour permettre aux autres applications (exemple : la souris...) de continuer à fonctionner?


Mlok

Hors ligne

#2 Le 09/10/2009, à 10:36

alexduf

Re : Comment limiter l'utilisation de la mémoire par un logiciel?

Bonjour,
En fait on ne peut pas imposer à un programme de se restreindre à utiliser telle quantité de RAM. (du moins pas à ma connaissance)
C'est au programme de gérer ça, s'il a besoin d'1Go, on ne peut pas faire autrement sans toucher au code lui même.

Hors ligne

#3 Le 09/10/2009, à 12:34

Hoper

Re : Comment limiter l'utilisation de la mémoire par un logiciel?

Ca dois existe... mais c'est du paramétrage système qu'on touche pas tous les jours... fais des recherches sur "max memory" et sur "sysctl" avec un peu de chance...


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#4 Le 13/10/2009, à 04:28

Mlok

Re : Comment limiter l'utilisation de la mémoire par un logiciel?

Pour information j'ai posé la question sur le forum anglophone :
http://ubuntuforums.org/showthread.php?p=8092170
Une solution semble se dessiner.

Hors ligne

#5 Le 13/10/2009, à 08:00

freaxmind

Re : Comment limiter l'utilisation de la mémoire par un logiciel?

Le logiciel a besoin d'un certain espace mémoire pour travaillé, il peut soit utiliser ta mémoire vive ou ta partition swap.
Tu peux toujours essayer d'augmenter ta swap si tu as besoin de faire beaucoup d'échange et si ta mémoire vive est vite saturé.

Sinon, tu peux limité le temps du logiciel sur le processeur avec la commande nice ou avec une interface graphique.

Hors ligne

#6 Le 13/10/2009, à 10:44

Zakhar

Re : Comment limiter l'utilisation de la mémoire par un logiciel?

Je suis certain que ce truc existe sur AIX. Ca se fait au niveau global de l'utilisateur connecté auquel on attribue des ressources, dont la mémoire max utilisable.

Ca doit donc aussi probablement exister sur Linux, mais aucune idée comment on fait ça, notre admin AIX qui était bien sympa n'est plus là...


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#7 Le 13/10/2009, à 10:57

compte supprimé

Re : Comment limiter l'utilisation de la mémoire par un logiciel?

La solution s'appelle ulimit. Cette commande permet de limiter différentes ressources associés à un shell et aux processus démarrés par lui.

# ulimit -v 10000
# vi a.pl
vi: error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory

Donc tu écris un script, tu mets dedans l'ulimit qui va bien et l'appel à meld et hop !

ulimit dispose de pas mal d'options, de limite soft et hard, regarde le man.

Dernière modification par oktoberfest (Le 13/10/2009, à 10:59)

#8 Le 13/10/2009, à 11:09

alexduf

Re : Comment limiter l'utilisation de la mémoire par un logiciel?

oktoberfest a écrit :

Donc tu écris un script, tu mets dedans l'ulimit qui va bien et l'appel à meld et hop !

ulimit dispose de pas mal d'options, de limite soft et hard, regarde le man.

Et meld plantera joyeusement parce qu'il a pas assez de mémoire big_smile

Hors ligne

#9 Le 13/10/2009, à 11:17

compte supprimé

Re : Comment limiter l'utilisation de la mémoire par un logiciel?

alexduf a écrit :
oktoberfest a écrit :

Donc tu écris un script, tu mets dedans l'ulimit qui va bien et l'appel à meld et hop !

ulimit dispose de pas mal d'options, de limite soft et hard, regarde le man.

Et meld plantera joyeusement parce qu'il a pas assez de mémoire big_smile

Ben moi je répond à la question du môssieur molk sur la limitation mémoire. Ensuite les effets de bord c'est autre chose (exemple du vi qui ne se lance même pas).
Tout ce que le ulimit va permettre c'est de ne faire planter que meld et pas toute la machine, sauvons d'abord le pingouin cool