当前位置: 首页 > news >正文

Linux 清理缓存详解

前言

        在 Linux 服务器运行过程中,系统会使用缓存来提高性能,但有时我们需要手动清理缓存来释放内存。本篇文章详细介绍如何安全地清理 Linux 系统缓存,并解释不同缓存类型的作用。


1. Linux 缓存类型

Linux 主要有以下三种缓存类型:

  • PageCache(页面缓存):用于缓存磁盘数据,提高读取速度。

  • Dentries(目录缓存):用于缓存目录结构,提升文件系统访问效率。

  • Inodes(索引节点缓存):用于缓存文件元数据,加快文件读取。


2. 清理缓存的命令

Linux 提供 /proc/sys/vm/drop_caches 接口,可用于手动释放缓存。

2.1 仅释放 PageCache

echo 1 > /proc/sys/vm/drop_caches

2.2 释放 Dentries 和 Inodes

echo 2 > /proc/sys/vm/drop_caches

2.3 释放所有缓存(PageCache + Dentries + Inodes)

echo 3 > /proc/sys/vm/drop_caches

⚠️ 注意drop_caches 只是释放缓存,数据仍保留在内存中,不会影响运行中的进程。


3. 结合 sync 命令确保数据安全

在清理缓存之前,建议先执行 sync 命令,以确保所有数据被正确写入磁盘。

sync && echo 3 > /proc/sys/vm/drop_caches

sync 的作用是将所有缓存数据同步到磁盘,避免因清理缓存导致的数据丢失。


4. 通过 free 查看内存使用情况

清理缓存前后,可使用 free -m 命令查看内存变化:

free -m

示例输出:

              total        used        free      shared  buff/cache   available
Mem:          16000        8000        2000        1000        6000        5000
Swap:         8000         100         7900

buff/cache 代表缓存占用的内存,执行清理缓存后应看到此数值减少。


5. 自动定期清理缓存

如果需要定期清理缓存,可使用 crontab 任务调度:

crontab -e

添加以下定时任务(每天凌晨 2 点清理所有缓存):

0 2 * * * sync && echo 3 > /proc/sys/vm/drop_caches

6. 总结

  • echo 1 释放 PageCache

  • echo 2 释放 Dentries 和 Inodes

  • echo 3 释放所有缓存

  • 使用 sync 确保数据安全

  • 结合 free -m 查看内存变化

  • 通过 crontab 实现自动清理

定期管理 Linux 服务器缓存可以优化性能,避免因缓存占用过多导致的内存不足问题。

如果觉得这篇博客对你有帮助,记得点赞 ⭐、收藏 📌、关注 🚀!

http://www.dtcms.com/a/106210.html

相关文章:

  • Android 小组件
  • DeepSeek-R1 模型现已在亚马逊云科技上提供
  • 大象如何学会太空漫步?美的:科技领先、To B和全球化
  • Rstudio如何使用Conda环境配置的R
  • Docker desktop如何汉化
  • AI产品经理工作内容是什么?
  • 互联网医院系统源码解析:如何搭建高效的预约挂号与电子处方功能?
  • Mac 电脑移动硬盘无法识别的解决方法
  • 【三维异构Dvhop定位】基于灰狼优化算法的三维异构Dvhop定位算法【Matlab代码#93】
  • 文件包含漏洞的小点总结
  • ubuntu 22.04 解决LXC 报错CGroupV1 host system
  • Open GL ES ->GLSurfaceView正交投影与透视投影方法中近远平面取值参考
  • 20.ARMLinux上ADC的驱动和使用方法
  • 云之家开发者模式下接口值的抓取
  • 前端处理pdf文件流,展示pdf
  • CouchBase稀疏索引和全量索引的对比
  • Leetcode 3504. Longest Palindrome After Substring Concatenation II
  • react+antd封装一个可回车自定义option的select并且与某些内容相互禁用
  • ffmpeg中格式转换需要注意点总结
  • 设计模式基础入门
  • Android 使用CameraX实现预览、拍照、录制视频(Java版)
  • AI产品的基础设施:算法、数据与大语言模型
  • 解决安卓手机WebView无法直接预览PDF的问题(使用PDF.js方案)
  • 基于SpringBoot的仓库管理系统-023
  • 递归详解:从原理到实战
  • 9.常用模板引擎
  • Elasticsearch索引的字段映射
  • 串口中断接收与环形缓冲实例(apollo3 blue plus)
  • Perl 哈希
  • Springboot实战:如何用Docker和Kubernetes部署微服务