Ich habe derzeit einige Probleme mit dem Cache. Im Moment ist es etwas zu viel, deshalb wollte ich es klären. Ich googeln und fand diesen kleinen Befehl: sync && echo 3 > /proc/sys/vm/drop_caches
.
Ich bin über SSH als root angemeldet (ohne sudo). Dies sind die Versuche, die ich gemacht habe:
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
Es ist eine entfernte Maschine, auf der Debian läuft. Soweit ich weiß, enthält dieser Computer einige vCores und verwendet Virtuozzo für die Virtualisierung.
Ich möchte wirklich nur den Cache leeren (also kann ich nur mit SSH darauf zugreifen) .
Ich habe auch versucht, dies als Cronjob zu registrieren. Aber es scheitert einfach auch!
linux
permissions
virtualization
proc
openvz
BrainStone
quelle
quelle
sudo
?/proc/sys/vm/drop_caches
existiert tatsächlich?Antworten:
Handelt es sich tatsächlich um eine Remote-Maschine oder nur um ein Remote- System ? Wenn dies irgendwo ein VPS- Slice ist , lassen dies (zumindest einige Formen von) Betriebssystemvirtualisierung (z. B. openVZ) nicht innerhalb des Containers zu. Sie lassen die Maschine nicht laufen, Sie lassen nur Ihre Scheibe laufen.
quelle
sudo
muss die Umleitung vollständig abdecken, damit sie vollständig von root ausgeführt werden kann:quelle
echo 3 | sudo tee /proc/sys/vm/drop_caches
Dies ist ein normales Verhalten bei der Virtualisierung auf Betriebssystemebene. Dies kann nur von jemandem ausgeführt werden, der über Root-Zugriff auf den Hardware-Knoten verfügt.
Mit OpenVZ erhalten Sie beispielsweise keine eigene Kernel-Instanz und können daher keine Befehle wie diesen ausführen.
Alle verwenden den gleichen Seiten-Cache. Um also nur die Caches Ihrer Instanz zu löschen, muss der Kernel prüfen, ob die Seite Ihnen gehört und ob die anderen Instanzen diese Seite auch nicht verwenden.
Mit einer anderen Virtualisierungstechnik wie KVM oder Xen könnte dies funktionieren.
quelle
Sie können
echo
piped verwenden,sudo tee
um die richtige Berechtigung zuzulassen, die erforderlich ist, wenn Sie als Root Echo benötigen.Verwenden Sie,
tee --help
um weitere Optionen aufzulisten.quelle
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
Dieser Befehl funktioniert bei mir ohne
/usr/bin/echo
in mchid zu antworten. Es gab Fehlersh: 1: /usr/bin/echo: not found
. Also nur "Echo" verwendetquelle
Ich hatte das gleiche Problem, als ich versuchte, sudo wie folgt zu verwenden:
Meine Lösung bestand darin, vorübergehend auf root zu wechseln. Offensichtlich muss diese Berechtigung auf Ihrem System aktiviert sein:
quelle
Verwenden Sie mit OpenStack eine ähnliche VM-Einstellung und das funktioniert (unter Debian):
quelle