web-dev-qa-db-fra.com

Comment nettoyer ou désactiver le cache mémoire?

Après le démarrage du système, mon cache mémoire se remplit en quelques minutes et il commence à utiliser le swap. Voici une capture d'écran de/proc/meminfo.

memory

Cependant, si je peux désactiver ce processus/nettoyer le cache une fois par la suite, je pense que mon système accélérera dans une certaine mesure. Corrigez-moi si je me trompe ici.

J'ai également essayé le nettoyage de mémoire Bleachbit, mais cela ne semble pas nettoyer le cache de mémoire correctement. En outre, la fonctionnalité est encore à un stade expérimental.

bleachbit memory

Il y avait déjà une question similaire postée ici: Comment puis-je désactiver le cache de pré-extraction? , mais il s'agissait d'Ubuntu Server, et les réponses impliquaient également des paramètres manuels, etc.

Donc, je veux savoir s'il existe un logiciel pour désactiver/activer le cache mémoire pour Ubuntu 12.04.

47
Forbidden Overseer

Remarque: Linux ne "consomme" pas votre RAM! S'il vous plaît jeter un oeil à Geirha excellente réponse ci-dessous pour comprendre pourquoi ...

Après la remarque ci-dessus, si vous pensez toujours que "nettoyer" la mémoire cache peut vous aider, vous pouvez certainement essayer: il s’agit d’un one-liner à partir du terminal:

sync && echo 3 | Sudo tee /proc/sys/vm/drop_caches

Il n’existe pas de moyen simple de désactiver le cache, mais vous pouvez obtenir le même effet en le nettoyant aussi souvent que toutes les minutes , si tu veux:

  • Faites-en un cron-job
  • Appuyez sur Alt-F2, tapez gksudo gedit /etc/crontab et ajoutez cette ligne près du bas:

    */15 * * * * root sync && echo 3 > /proc/sys/vm/drop_caches

  • Cela nettoie toutes les 15 minutes. Vous pouvez définir 1 ou 5 minutes si vous voulez vraiment en modifiant le premier paramètre en * ou */5 au lieu de */15

Une doublure pour connaître la RAM libre réelle, excepté le cache

La réponse de Geirha explique les détails, mais en bref, vous obtenez le nombre de mégaoctets gratuits avec:

free -m | sed -n -e '3p' | grep -Po "\d+$"

lequel sur mon serveur de ligne de commande de 2 Go renvoie un 1835 extrêmement sain.

58
ish

Aidez-moi! Linux a mangé ma RAM!

www.linuxatemyram.com explique cela joliment sous la forme FAQ, l'essentiel étant:

Que se passe-t-il?

Linux emprunte de la mémoire inutilisée pour la mise en cache du disque. Cela donne l'impression que vous avez peu de mémoire, mais vous ne l'êtes pas! Tout va bien!

Pourquoi ça fait ça?

La mise en cache de disque rend le système beaucoup plus rapide! Il n'y a pas d'inconvénients, sauf pour les débutants déroutants. Cela n'enlève rien à la mémoire des applications!

Et si je veux exécuter plus d'applications?

Si vos applications souhaitent disposer de plus de mémoire, elles reprennent simplement un morceau emprunté par le cache disque. Le cache disque peut toujours être restitué aux applications immédiatement! Vous n'êtes pas à court de bélier!

Comment puis-je voir combien de bélier gratuit j'ai vraiment?

Pour voir combien de RAM vos applications pourraient utiliser sans permutation, lancez free -m et regardez la colonne "disponible":

 $ free -m 
 total utilisé buff/cache partagé gratuit disponible 
 Mem: 1504 1491 13 0 855 792
 Swap: 2047 6 2041 
Ceci est votre réponse en mebibytes.

Source: comme mentionné, l'excellent www.linuxatemyram.com - veuillez visiter pour plus d'informations.

44
geirha

Pour vérifier votre utilisation actuelle de la mémoire

 watch -n 1 free -m

ou

 watch -n 1 cat /proc/meminfo

pour libérer de l'espace

 Sudo sysctl -w vm.drop_caches=3

NOTE: cette action ne va pas accélérer votre système ni affecter sa stabilité et ses performances, elle va juste nettoyer la mémoire utilisée par le noyau Linux dans des caches.

ou

 Sudo sync && echo 3 | Sudo tee /proc/sys/vm/drop_caches

REMARQUE: Vous pouvez utiliser les tâches cron pour planifier l'exécution des commandes ci-dessus à des intervalles de temps spécifiques.

4
SilleBille

Comme nous pouvons voir que l'encaissement ne pose pas de problème si cela entraîne un échange, ce que vous pouvez éviter en gérant la valeur vm.swappiness . Peut-être que c'est ce que vous cherchez: pourquoi-est-swap-être-utilisé-même-si-j'ai-beaucoup-de-libre-bélier

1
Tamas

Puisque je ne peux pas commenter, je réponds. Le cache de disque remplit RAM lorsqu'il y a une action d'écriture sur le disque. Si vous avez beaucoup d'écritures, le cache grossira au point que le système commence à permuter. Je sais que c'est vrai parce que je l'ai déjà vu et que cela semble fou, mais c'est apparemment normal pour le reste du monde. Lisez la logique: vous utilisez le disque de manière intensive et qu’obtenez-vous? Utilisation plus importante du disque car le système commence à permuter parce que vous dumpez des choses sur le disque. Je veux dire ... bonjour tout le monde à la maison? Ma suggestion est d'utiliser sync && echo 3 | Sudo tee /proc/sys/vm/drop_caches autant que vous le pouvez car c'est la seule solution et ne pas écouter les autres.

0
Viktor Joras