Libérer de la mémoire non utilisée ou en cache sous Linux

Libérer de la mémoire non utilisée ou en cache sous Linux

Il faut reconnaitre qu’avec mon modèle B 256Mo et mon envie d’installer des services à la pelle je suis vite à cours de mémoire. Lors de ma recherche sur Internet je suis tombé sur un post assez intéressant sur la gestion de la mémoire ici.

Donc si vous voulez libérer la mémoire cache ou la mémoire non utilisée, il suffit d’envoyer 3 dans le fichier /proc/sys/vm/drop_caches

Libérer de la mémoire non utilisée ou en cache sous Linux

Le avant/après la purge

Effectivement, ça libère de la mémoire qui va être reprise par les processus au fur et à mesure. Mais des processus comme pour Time Machine qui se lance 1 fois par heure peuvent relâcher de la mémoire pour ne la reprendre que lors de la prochaine exécution.

Bref c’est pas grand chose mais si ça peut aider … 😉

Vous aimerez aussi...

  • Mathieu

    Chris, tu penses que l’on peut mettre ça dans le /etc/crontab ?

    * 6 * * * echo 3 > /proc/sys/vm/drop_caches

    Tu as une idée pour le mettre en su ?

    • Salut Mathieu,
      Oui oui tu peux, je l’avais à déjà mis. Pour que ce soit lancé en root, je crois qu’il faut utiliser su :
      su -c "commande"
      A vérifier 😉 Mon Raspberry a encore planté du coup ca restore 😉

      • Mathieu

        Le même écran bleu que tu avais déjà posté ?

        Bon du coup je vais essayé de coller ça dans le cron :

        * 6 * * * su -c « echo 3 > /proc/sys/vm/drop_caches »

        Je repasserai dire si ça fonctionne bien.

        • La carte SD est corrompue … Je restaure ma partition principale …

  • Mathieu

    Bon il semble que ça ne marche pas en l’état.

    J’essai différemment :

    30 * * * * echo 3 > /proc/sys/vm/drop_caches

    • Ca fonctionne chez moi :

      55 * * * * root echo 3 > /proc/sys/vm/drop_caches

      Le 6ème paramètre est le user à utiliser. En root ca fonctionne

      • Mathieu

        J’essai ça, à plus tard 🙂

  • La plupart du temps il n’est pas nécessaire de faire ces manipulations : la mémoire utilisée pour les buffers et le cache est de la mémoire réputée disponible. En effet, si une application doit occuper plus de place mémoire, le système va commencer par prendre de la mémoire dans la partie buffers et cached. La partie used ne bougera peut-être pas mais la partie buffers et cached diminuera.

    Voir un système Linux qui utilise presque 100 % de la mémoire n’est donc pas aberrant. Tant qu’à disposer de mémoire, autant l’utiliser au maximum.

    Dans le cadre d’une application lancée sur un serveur,

    – tout se passe bien : l’application est complètement chargée en mémoire, de la mémoire est encore disponible pour les applications mais utilisée pour les buffers et le cache et le serveur ne swappe pas ;

    – l’application veut plus de mémoire : le système va prendre de la mémoire dans la partie buffers / cache ;

    – si cela ne suffit pas, on commencera à swapper.

    Bien sûr la manipulation décrite n’entraîne pas de pertes de données mais ne permet pas au système d’utiliser pleinement la mémoire cache. Un effet de bord possible est donc la dégradation des performances.