安装 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 预览版



结果

SystemD 正在运行

● 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 终端,我写的这篇文章将逐步指导你

相关内容