安裝 WSL 2

安裝 WSL 2

我正在運行以下命令來清除快取:

$ 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

所以顯然它不起作用,因為快取中有 230M。當我轉到 /proc/sys/vm/ 時,沒有名為“drop_caches”的檔案。

到底是怎麼回事?

我透過 Windows Linux 子系統使用 Ubuntu 16.04。

答案1

即使您無法建立文件由於/proc/sys/vm其權限:

dr-xr-xr-x 1 root root 0 Jun  9 21:46 /proc/sys/vm

你甚至可以看到沒有寫入權限,這意味著即使無法在此目錄中刪除、重新命名或建立檔案。

/proc/sys/vm如果檔案權限本身足夠,則現有文件可能是可編輯的。

下面的文件/proc是內核提供的。使用 WSL,您不使用 Linux 內核,而是使用模擬(lxss.sys、lxcore.sys)。如果下面的檔案/proc不存在,則表示該檔案不是由核心提供的,或者在您的情況下不是由模擬提供的。

答案2

[已編輯]

正如我之前所承諾的,我找到了解決方案。



安裝 WSL 2

您需要安裝 WSL 2,因為 WSL 1 不支援 Systemd 等功能,因此不可能在執行時刪除緩衝區快取。



安裝 Ubuntu 預覽版

即使安裝了 WSL2,目前版本的 Ubuntu 也不支援 Systemd,因此必須安裝 Ubuntu 預覽版



結果

系統D運行

● 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$


額外的

如果您想使用自訂啟動橫幅來個人化您的 Windows 終端,我寫的這篇文章將逐步引導您

相關內容