将 /proc/sys/vm/drop_caches 重置为默认值 0

Reset /proc/sys/vm/drop_caches to default value 0

最近我试图清空 Debian 网络服务器上的缓冲区缓存。我使用的命令是:

free && sync && echo 3 > /proc/sys/vm/drop_caches && free

到目前为止一切顺利,运行 cat /proc/sys/vm/drop_caches 打印值 3。

当我尝试使用 sync && echo 0 > /proc/sys/vm/drop_caches 将值重置为 0 时,此错误显示:

bash: echo: write error: Invalid argument

这是因为drop_caches是一个命令,而不是要设置的变量。我发现 this:

sudo sysctl -w vm.drop_caches=3

它会立即清除 pagecache、dentry 和 inode,只有当您再次调用 sysctl -w 时才会再次清除,显然没有必要以显式方式将其设置回 0。 Debian 本身不支持命令 sysctl,因此我正在寻找替代命令,更准确地说:

如何重置drop_caches或立即清空缓存将值重置为0?

值 1-3 只是一次触发操作。没有值 0.

sysctl 在包 procps 中。

apt install procps