为了清除缓存,我通常调用
# echo 3 | tee /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
这需要 root 权限。为什么我需要偶尔这样做?因为它会对我的一些程序的运行时产生巨大的影响。我的问题是:如果没有超级用户权限,我该如何做到这一点,特别是这两种情况:
1)我/用户没有root权限。系统管理员可以做些什么来允许普通用户运行上面的命令吗?
2) 对删除缓存的调用来自 shell 脚本内,并且不能以超级用户权限运行整个脚本。例如,因为此脚本中有多个调用“mpirun”的实例,所以实际上不应该以 root 身份运行。尽管只有几行实际上需要它,但以 root 身份运行脚本中的所有内容对我来说似乎不是一个好的做法。
编辑:忘记提及:以上命令仅在以 root 身份登录时有效。否则命令将是echo 3 | sudo tee /proc/sys/vm/drop_caches