Ich führe den folgenden Befehl aus, um den Cache zu leeren:
$ sync; sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
sh: 1: cannot create /proc/sys/vm/drop_caches: Operation not permitted
$ free
total used free shared buff/cache available
Mem: 7.9G 5.7G 2.0G 17M 230M 2.1G
Swap: 13G 445M 13G
Es funktioniert also offensichtlich nicht, da sich 230 MB im Cache befinden. Wenn ich zu /proc/sys/vm/ gehe, gibt es keine Datei namens „drop_caches“.
Was ist los?
Ich verwende Ubuntu 16.04 über das Windows Linux-Subsystem.
Antwort1
Sie können keine Datei erstellen, auch wennWurzelaufgrund /proc/sys/vm
seiner Berechtigungen:
dr-xr-xr-x 1 root root 0 Jun 9 21:46 /proc/sys/vm
Man sieht, dass selbstWurzelhat keine Schreibrechte, was bedeutet, dass selbstWurzelIn diesem Verzeichnis können keine Dateien gelöscht, umbenannt oder erstellt werden.
Vorhandene Dateien /proc/sys/vm
können jedoch möglicherweise bearbeitet werden, wenn die Dateiberechtigungen selbst ausreichend sind.
Dateien darunter /proc
werden vom Kernel bereitgestellt. Bei Verwendung von WSL verwenden Sie keinen Linux-Kernel, sondern eine Emulation (lxss.sys, lxcore.sys). Wenn eine Datei darunter /proc
nicht existiert, bedeutet dies, dass sie nicht vom Kernel oder in Ihrem Fall von der Emulation bereitgestellt wird.
Antwort2
[ Bearbeitet ]
Wie ich bereits versprochen habe, habe ich eine Lösung gefunden.
Installieren von WSL 2
Sie müssen WSL 2 installieren, da WSL 1 keine Funktionen wie Systemd unterstützt und daher das Entfernen des Puffercaches zur Laufzeit nicht möglich ist.
Installieren Sie die Ubuntu-Vorschau
Selbst wenn WSL2 installiert ist, bieten die aktuellen Versionen von Ubuntu keine Systemd-Unterstützung.Daher muss Ubuntu Preview installiert werden.
ERGEBNIS
● DESKTOP-E8H5RD4
State: running
Units: 308 loaded (incl. loaded aliases)
Jobs: 0 queued
Failed: 0 units
Since: Thu 2022-12-01 14:03:05 GMT; 1h 36min ago
systemd: 251.4-1ubuntu7
Tainted: cgroupsv1
CGroup: /
c_sharp_man@DESKTOP-E8H5RD4:/mnt/c/Windows/system32$ free
total used free shared buff/cache available
Mem: 7815484 484724 7191488 3352 139272 7128876
Swap: 2097152 268 2096884
c_sharp_man@DESKTOP-E8H5RD4:/mnt/c/Windows/system32$ sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
[sudo] password for c_sharp_man:
c_sharp_man@DESKTOP-E8H5RD4:/mnt/c/Windows/system32$ free
total used free shared buff/cache available
Mem: 7815484 486760 7192304 3352 136420 7128140
Swap: 2097152 268 2096884
c_sharp_man@DESKTOP-E8H5RD4:/mnt/c/Windows/system32$
Extra
Wenn Sie Ihr Windows-Terminal mit benutzerdefinierten Startbannern personalisieren möchten,dieser von mir verfasste Beitrag führt Sie Schritt für Schritt.