在Linux服务器上,可以通过以下步骤清理buff/cache:
-
查看当前buff/cache使用情况:
使用free -m
命令查看当前内存使用情况,包括buff/cache。free -m
输出示例:
total used free shared buff/cache available Mem: 7974 1758 267 120 5948 5838 Swap: 2047 0 2047
-
清理buff/cache:
可以使用sync
命令同步文件系统,然后使用echo
命令和sysctl
命令清理缓存。-
同步文件系统:
sync
sync
命令将所有未写入磁盘的内容写入磁盘,以确保文件系统的一致性。 -
清理页面缓存:
echo 1 > /proc/sys/vm/drop_caches
此命令清理页面缓存。
-
清理目录项和inode缓存:
echo 2 > /proc/sys/vm/drop_caches
此命令清理目录项和inode缓存。
-
清理页面缓存、目录项和inode缓存:
echo 3 > /proc/sys/vm/drop_caches
此命令同时清理页面缓存、目录项和inode缓存。
完整清理buff/cache的步骤如下:
sync echo 3 > /proc/sys/vm/drop_caches
-
-
验证清理结果:
再次使用free -m
命令查看buff/cache的使用情况。free -m
输出示例:
total used free shared buff/cache available Mem: 7974 1758 6215 120 0 5838 Swap: 2047 0 2047
注意事项:
- 使用
echo
命令时需要root权限,可以使用sudo
:sudo echo 3 > /proc/sys/vm/drop_caches
- 清理buff/cache可能会影响系统性能,因为缓存有助于加速文件和目录访问。
通过以上步骤,你可以有效地清理Linux服务器上的buff/cache。
当你尝试清理Linux服务器上的buff/cache时,如果遇到/proc/sys/vm/drop-caches: Read-only file system
错误,通常是因为你没有正确的权限或系统配置不允许更改这些文件。你可以使用以下方法解决这个问题:
方法一:使用sysctl
命令
使用sysctl
命令可以更改内核参数,而不用直接写入/proc/sys/vm/drop_caches
。
sudo sysctl -w vm.drop_caches=3
方法二:重新挂载/proc
文件系统
如果系统将/proc
文件系统以只读方式挂载,可以尝试重新挂载。
-
重新挂载
/proc
文件系统为可读写:sudo mount -o remount,rw /proc
-
清理缓存:
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
-
再次将
/proc
文件系统挂载为只读(如果需要):sudo mount -o remount,ro /proc
方法三:使用sync
命令确保文件系统一致性,然后清理缓存
结合使用sync
命令和清理缓存命令:
sudo sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
方法四:在启动时清理缓存
可以将清理缓存的命令添加到启动脚本中,以便在系统启动时自动清理缓存。编辑/etc/rc.local
文件,在文件末尾添加:
echo 3 > /proc/sys/vm/drop_caches
确保脚本具有执行权限:
sudo chmod +x /etc/rc.local
注意事项
- 修改系统配置和缓存清理操作需要谨慎,确保在进行这些操作前备份重要数据。
- 不要频繁清理缓存,因为缓存有助于系统性能提升。
通过上述方法,你可以解决/proc/sys/vm/drop-caches: Read-only file system
问题,并成功清理Linux服务器上的buff/cache。