root用户 echo 1> /proc/sys/vm/drop_caches可以执行,echo 0>/proc/sys/vm/drop_caches执行报错
时间: 2023-10-03 11:11:29 浏览: 356
在Linux中,/proc/sys/vm/drop_caches是一个系统内核参数,用于清空系统缓存。执行"echo 1 > /proc/sys/vm/drop_caches"命令可以清空页面缓存、inode和dentry缓存;而执行"echo 0 > /proc/sys/vm/drop_caches"命令只能清空页面缓存。
如果你以非root用户身份执行"echo 0 > /proc/sys/vm/drop_caches"命令,会因为权限不足而导致执行失败。因为只有root用户才有权限修改/proc/sys/vm/drop_caches文件。
因此,你需要使用sudo或者su命令来切换到root用户,才能够执行"echo 0 > /proc/sys/vm/drop_caches"命令。
相关问题
用root用户 echo 1> /proc/sys/vm/drop_caches可以执行,echo 0>/proc/sys/vm/drop_caches执行报错-bash: echo: write error: Invalid argument
这个问题可能是因为你的内核版本不支持清除缓存的操作。在某些内核版本中,`/proc/sys/vm/drop_caches`仅支持三种值:0、1和2。
- 0 - 表示不清除缓存;
- 1 - 表示清除页面缓存;
- 2 - 表示清除目录项和inode缓存。
如果你想要清除缓存,可以尝试以下命令:
```
sync && echo 1 > /proc/sys/vm/drop_caches
```
这个命令会先执行 sync 命令将所有缓存数据写回硬盘,然后再清除页面缓存。这样可以确保数据被保存到硬盘上,以免丢失数据。
如果你仍然无法清除缓存,请检查你的内核版本是否支持该操作。你可以使用以下命令查看内核版本:
```
uname -r
```
如果你的内核版本较老,可以考虑升级内核或者使用其他方法清除缓存。
echo 1 > /proc/sys/vm/drop_caches 没有作用
这个命令是用来清空系统缓存的,但是需要注意的是,它只能清空系统缓存,而不能清空应用程序的缓存。另外,这个命令需要root权限才能执行。
如果执行这个命令后没有起到作用,可能是由于以下原因:
1. 没有root权限:需要使用root权限才能执行这个命令。
2. 系统内核版本太低:这个命令只在内核版本为2.6.16及以上的系统中才有效。
3. 系统没有开启drop_caches功能:有些系统默认没有开启drop_caches功能,需要手动开启。
4. 系统正在使用缓存:如果系统正在使用缓存,那么执行这个命令可能会导致系统变慢,因此系统会禁止执行这个命令。
5. 磁盘空间不足:如果磁盘空间不足,那么执行这个命令可能会导致系统出现异常,因此系统会禁止执行这个命令。
阅读全文