以root身份访问/proc/sys/vm/drop_caches文件时提示Permission denied的解决方法
以root身份访问/proc/sys/vm/drop_caches文件时提示Permission denied的解决方法
嘿,我太懂你这种明明觉得拿到root权限却碰一鼻子灰的感觉了!明明用sudo bash切到root身份,结果cat /proc/sys/vm/drop_caches还是弹出Permission denied,确实挺闹心的。我来给你说几个靠谱的解决办法,顺便聊聊这个文件的小门道:
最直接的解决:跳过切换root shell这一步,直接用
sudo搭配cat命令执行,比如:sudo cat /proc/sys/vm/drop_caches这个命令会直接以root权限运行cat,稳稳能读到文件内容——这个文件里一般就是个数字,比如1、2、3或者它们的组合,对应不同的缓存清理类型。
如果你非要在root shell里操作:试试用
sudo -i切换到完整的root登录环境,而不是sudo bash。有时候sudo bash可能没完全继承root的全部权限上下文,换sudo -i之后再执行cat /proc/sys/vm/drop_caches应该就能正常访问了。
另外,看你提到是因为kswapd0占了50%CPU才折腾这个文件,顺便提一句:这个文件的核心用途其实不是“查看”,而是给内核发清理缓存的指令。比如:
- 清理页缓存:
echo 1 | sudo tee /proc/sys/vm/drop_caches - 清理目录项和inode缓存:
echo 2 | sudo tee /proc/sys/vm/drop_caches - 清理所有缓存类型:
echo 3 | sudo tee /proc/sys/vm/drop_caches
不过要注意,这个操作只是临时释放缓存,系统后续还是会根据需求重新占用缓存空间。如果kswapd0长期高CPU,大概率是系统内存不足或者有进程在疯狂占用内存,这时候光清缓存只是治标,得排查下内存占用的根源问题哦。
备注:内容来源于stack exchange,提问作者neubert
相关产品推荐
相关产品推荐

