【问题标题】:Reset /proc/sys/vm/drop_caches to default value 0将 /proc/sys/vm/drop_caches 重置为默认值 0
【发布时间】:2021-01-08 13:04:02
【问题描述】:

最近我试图清空 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、dentries 和 inode,并且仅当您再次调用 sysctl -w 时才会再次清除,显然不需要以显式方式将其设置回 0。命令 sysctl 在 Debian 上不受本机支持,因此我正在寻找替代命令,更准确地说:

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

【问题讨论】:

    标签: linux unix caching server debian


    【解决方案1】:

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

    sysctl 在包 procps 中。

    apt install procps

    【讨论】:

    • 感谢@lbor 的回复。所以设置任何值 1-3 只会触发一次清除缓存的操作,对吗?我知道sysctl 必须单独安装,这就是为什么我要求已经安装了一个备用命令,它似乎将值直接写入drop_caches 文件。 sysctl -w vm.drop_caches=0 会工作吗?
    • 您只能使用值 1,2 和 3。没有值 0。您只启动触发器,清除缓存和缓存将立即再次开始缓存。
    猜你喜欢
    • 2015-05-04
    • 2023-03-25
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 2011-04-06
    • 2012-10-31
    • 2023-04-05
    相关资源
    最近更新 更多