drop_cache 权限被拒绝

drop_cache 权限被拒绝

我关注https://www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/然后我意识到我没有权限/proc/sys/vm/drop_caches。我甚至使用了sudo su,它仍然说Permissions denied。为什么我无法访问此文件?我只想能够访问它,但即使拥有完整的 root 权限,我也无法访问它?

Ubuntu 20.04

答案1

这实际上不是一个答案,而只是我们在评论中要求的一个例子。请注意命令如何工作,以及 31 GB 的缓存被丢弃:

root@s19:/home/doug/tmp#
root@s19:/home/doug/tmp# free -m
              total        used        free      shared  buff/cache   available
Mem:          31940         386         258           3       31295       31086
Swap:          2047           0        2047
root@s19:/home/doug/tmp# sync
root@s19:/home/doug/tmp# echo 3 > /proc/sys/vm/drop_caches
root@s19:/home/doug/tmp# free -m
              total        used        free      shared  buff/cache   available
Mem:          31940         287       31510           3         142       31314
Swap:          2047           0        2047
root@s19:/home/doug/tmp#

该示例是在物理硬件上完成的,但也在完整的 (KVM/QEMU) 虚拟计算机上进行了尝试。我不知道它是否可以在 VPS 或其他计算机上运行。

答案2

“我甚至使用了 sudo su 但它仍然说权限被拒绝”的答案是,你可能并没有真正这样做sudo su,因为除非你的权限被搞砸了,否则那样做是可以的。你链接的配方并不完全正确,因为它歪曲了 shell 中的操作顺序。sudo sync; echo 3 > /proc/sys/vm/drop_cache将以 root 身份运行第一个命令,第二个命令将以普通用户(没有权限)身份运行。sudo sync是一个完整的命令,shell 将执行它然后转到下一个命令。即使sudo echo 3 > /proc/sys/vm/drop_cache不起作用,因为命令是sudo echo 3,并且输出将像你在 shell 中一样重定向,因此再次会因权限问题而失败。正确的方法是,正如通过谷歌在其他地方可以找到的那样echo 3 | sudo tee /proc/sys/vm/drop_cache

相关内容