J'ai actuellement quelques problèmes avec le cache. C'est un peu trop en ce moment donc je voulais le clarifier. J'ai googlé et trouvé cette petite commande: sync && echo 3 > /proc/sys/vm/drop_caches
.
Je suis connecté en tant que root sur SSH (sans utiliser sudo). Ce sont les tentatives que j'ai faites:
root@server: ~ # ll /proc/sys/vm/drop_caches
-rw-r--r-- 1 root root 0 15. Jan 20:21 /proc/sys/vm/drop_caches
root@server: ~ # echo 3 > /proc/sys/vm/drop_caches
-bash: /proc/sys/vm/drop_caches: Permission denied
root@server: ~ # sudo su -c "echo 3 > /proc/sys/vm/drop_caches"
bash: /proc/sys/vm/drop_caches: Permission denied
root@server: ~ # echo 3 | sudo tee /proc/sys/vm/drop_caches
tee: /proc/sys/vm/drop_caches: Permission denied
3
Il s'agit d'une machine distante exécutant Debian. Autant que je sache, il y a des vCores dans cette machine et elle utilise Virtuozzo pour la virtualisation.
Je veux vraiment simplement vider le cache (donc je ne peux y accéder qu'en utilisant SSH) .
J'ai également essayé de l'enregistrer en tant que cronjob. Mais cela échoue tout simplement aussi!
linux
permissions
virtualization
proc
openvz
BrainStone
la source
la source
sudo
?/proc/sys/vm/drop_caches
existe-t- il réellement?Réponses:
S'agit-il en fait d'une machine distante ou simplement d'un système distant ? S'il s'agit d'une tranche VPS quelque part, (au moins certaines formes de) virtualisation du système d'exploitation (par exemple openVZ) ne permettra pas cela à partir du conteneur. Vous ne lancez pas la machine, vous exécutez simplement votre tranche.
la source
sudo
doit couvrir toute la redirection pour pouvoir être complètement exécutée par root:la source
echo 3 | sudo tee /proc/sys/vm/drop_caches
Il s'agit d'un comportement normal sous la virtualisation au niveau du système d'exploitation. Cela ne peut être exécuté que par une personne ayant un accès root au nœud matériel.
Avec par exemple OpenVZ , vous n'avez pas votre propre instance de noyau et en tant que tel, vous n'êtes pas autorisé à exécuter des commandes comme celle-ci.
Tous partagent le même cache de page, donc pour supprimer les caches de votre instance uniquement, le noyau doit vérifier si la page vous appartient et si les autres instances n'utilisent pas également cette page.
Avec une autre technique de virtualisation comme KVM ou Xen, cela pourrait fonctionner.
la source
Vous pouvez utiliser
echo
piped poursudo tee
autoriser l'autorisation appropriée requise lorsque vous devez faire écho en tant que root.Utilisez
tee --help
pour lister plus d'options.la source
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
Cette commande fonctionne pour moi sans
/usr/bin/echo
réponse en mchid. Cela donnait une erreursh: 1: /usr/bin/echo: not found
. Donc utilisé uniquement «écho»la source
J'ai eu le même problème lorsque j'ai essayé d'utiliser sudo comme ceci:
Ma solution était de passer temporairement en root. Manifestement, cette autorisation doit être activée sur votre système:
la source
Utiliser les paramètres d'une VM smilar avec OpenStack et cela fonctionne (exécuter Debian):
la source