Установить WSL2

Установить WSL2

Я запускаю следующую команду для очистки кэша:

$ 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

Так что это явно не работает, так как в кэше 230 МБ. Когда я захожу в /proc/sys/vm/, там нет файла с именем "drop_caches".

Что происходит?

Я использую Ubuntu 16.04 через подсистему Windows Linux.

решение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

[ Отредактировано ]

Как я и обещал, я нашел решение.



Установить WSL2

Вам необходимо установить 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 Terminal с помощью пользовательских баннеров запуска,этот пост, сделанный мной, проведет вас шаг за шагом.

Связанный контент