linux清理缓存

Linux清理缓存

当cache缓存占用太大,服务起不来,需要查看清理缓存

执行free -m或者free -h,查看缓存

root@iZuf69hjyg1f5yaol020twZ:~# free -m
               total        used        free      shared  buff/cache   available
Mem:           15095        4097       10584           2         413       10731
Swap:              0           0           0
root@iZuf69hjyg1f5yaol020twZ:~# free -h
               total        used        free      shared  buff/cache   available
Mem:            14Gi       4.0Gi        10Gi       2.0Mi       414Mi        10Gi
Swap:             0B          0B          0B

释放缓存区内存的方法(请注意,以下操作需要root权限)
建议在清理缓存之前先备份重要数据,以免发生意外情况。

1.清理磁盘缓存

刷新文件系统缓存,将缓存中的数据写入磁盘

sync

清理页缓存。这将清除页缓存中的数据,但不会清除目录项和inode缓存。

echo 1 > /proc/sys/vm/drop_caches	 或者 	sysctl -w vm.drop_caches=1

清理目录项和inode缓存

echo 2 > /proc/sys/vm/drop_caches    或者    sysctl -w vm.drop_caches=2

命令清理页缓存、目录项和inode缓存

echo 3 > /proc/sys/vm/drop_caches 	 或者    sysctl -w vm.drop_caches=3

2.清理Swap缓存:

如果系统启用了Swap分区,可以通过禁用和启用Swap来清理Swap缓存。首先,使用swapoff命令禁用Swap分区:sudo swapoff -a。然后,再使用swapon命令重新启用Swap分区:sudo swapon -a。

3.清理DNS缓存:

不同的Linux发行版可能使用不同的DNS解析器,因此清理DNS缓存的方法也不尽相同。以下是一些常见的方法:

  • 在大多数发行版中,可以使用systemd-resolve命令清理DNS缓存:sudo systemd-resolve --flush-caches。
  • 如果使用dnsmasq作为本地DNS缓存服务器,可以使用以下命令清理缓存:sudo systemctl restart dnsmasq。

请注意,清理缓存可能会导致一些性能下降,因为系统需要重新加载数据。只有在特定情况下(如系统性能问题或特定应用程序需要刷新缓存)才建议清理缓存。在正常情况下,Linux会自动管理缓存以提供最佳性能。

4.定时自动清理

0 08 * * * /usr/bin/sync && /usr/bin/sync && /usr/bin/echo 1 > /proc/sys/vm/drop_caches
posted @ 2024-12-27 11:36  数据库小白(专注)  阅读(7)  评论(0编辑  收藏  举报