9 votes

Comment effacer la mémoire cache dans Debian ?

Si je lance un free -m j'obtiens ce résultat :

Free -m output

Existe-t-il une commande que je pourrais utiliser pour effacer la mémoire utilisée ? J'ai essayé ceci :

echo 1 > /proc/sys/vm/drop_caches

Il demandera sudo . Mais même après sudo il donne une erreur de mauvaise commande.

Voici le lien qui m'a permis d'en savoir plus. drop_caches .

Je cherche juste un moyen de vider le cache.

12voto

TOC Points 236

Essayez ceci comme root (pas sudo) :

#sync && echo 3 > /proc/sys/vm/drop_caches

2voto

Alex North-Keys Points 151

Le problème avec :

sudo echo 1 > /proc/sys/vm/drop_caches

est que la redirection se produit dans le Shell initial - c'est-à-dire sous votre propre compte - avant que le "sudo echo 1" ne se produise, qui n'est pas la partie qui a vraiment besoin d'un accès root. Vous devez faire en sorte que l'ouverture de drop_caches par ">" soit à l'intérieur du sudo. Une façon paresseuse (paresseuse parce qu'elle clone le 3 vers stdout, ce dont vous n'avez pas vraiment besoin) est :

echo 3 | sudo tee /proc/sys/vm/drop_caches

Les options pour écrire dans drop_caches sont :

  1. Pagecache gratuit
  2. Dentries et inodes libres
  3. Libère le cache de la page, les dentries et les inodes.

Et vous devrait la première synchro, donc tout compte fait :

sync ; echo 3 | sudo tee /proc/sys/vm/drop_caches

ou si vous n'aimez pas le faux "3" sur la sortie standard :

sudo sh -c 'sync ; echo 3 >/prod/sys/vm/drop_caches'

1voto

Jack Billy Points 1586

Nous pouvons le faire automatiquement en utilisant crontab comme root .

~$ sudo crontab -e

Vous verrez le fichier crontab de votre/nouveau fichier comme celui-ci :

# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

Et vous ajouterez celle-ci dans de nouvelles lignes à rincer toutes les heures :

# Every hour flushes the memory cache on system
0 * * * * sync; echo 3 > /proc/sys/vm/drop_caches

Je vois dans mon syslog sortie tailf.

~$ tailf /var/log/syslog | grep 'cron'

Et je vois le résultat ci-dessous :

May 31 14:07:16 debian crontab[17353]: (root) BEGIN EDIT (root)
May 31 14:07:20 debian crontab[17353]: (root) END EDIT (root)

...

May 31 15:00:02 debian CRON[22169]: (root) CMD (sync; echo 3 > /proc/sys/vm/drop_caches)
May 31 15:17:01 debian CRON[18828]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

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