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

手动清除Ubuntu系统中的内存缓存

在Linux系统中,如Ubuntu,内核会自动管理内存,包含缓存(cache)和缓冲区(buffers)去提升系统性能。操作系统通常会将部分内存空间用作缓存来临时存储文件数据,这样当文件再次被访问时能够加快读取速度。然而,在某些情况下,比如应用程序运行前的测试或者是系统管理员想要手动释放内存空间以便更直观地监控内存使用情况,可能会希望清除这部分内存缓存。

Linux提供了一个简单的方式通过写特定值到 /proc/sys/vm/drop_caches文件来手动释放缓存,而不需要重启系统。执行这一过程不会影响系统的稳定性或者性能,因为只有不再使用的缓存才会被清除。

要清除缓存,请根据下面的步骤执行:

  1. 打开终端。这可以通过在Ubuntu桌面搜索终端或使用快捷键 Ctrl+Alt+T来完成。

  2. 首先,检查当前内存使用情况,执行命令:

    free -h

    这个命令将会提供内存使用的总览,包括总量、已使用、空闲、以及缓存的内存。

  3. 要清除页缓存,执行以下命令:

    sudo sync; sudo echo 1 > /proc/sys/vm/drop_caches

    这个操作会将文件系统的缓存清空。sync是用来把内存中的信息同步到硬盘上以确保数据完整性。

  4. 若要清除页缓存和回收Slab分配器中的对象(如inode缓存和目录项缓存),执行:

    sudo sync; sudo echo 2 > /proc/sys/vm/drop_caches
  5. 要清除页缓存、回收Slab分配器中的对象以及其他回收招数,执行:

    sudo sync; sudo echo 3 > /proc/sys/vm/drop_caches

    这将释放所有的缓存类型。

  6. 再次运行 free -h命令来确认内存缓存已被清除。

    执行这些命令将会释放系统内的缓存,但只包括不再使用或者需要的缓存。核心内存管理逻辑将保留必要的数据在内存中,以维持系统运行的高效性。

在运行这些命令之后,你可能会注意到系统上一些操作比起之前要慢,这是因为操作系统需要重新建立之前清除的缓存,这一过程可能会稍微增加磁盘I/O操作。因此,这不是一个推荐在生产环境中定期运行的操作,应该只在特定的测试或者诊断环境中使用。

http://www.hskmm.com/?act=detail&tid=11784

相关文章:

  • 消除 Vue SPA 刷新导致 404 的问题
  • Docker / Kubernetes 图形化管理工具--------Portainer
  • 【Excel】创建下拉选项框
  • 不定高元素动画实现方案(中)
  • 技术文章
  • 插值相关
  • 密码学学习记录(三)
  • 详解scheduleAtFixedRate 与 scheduleWithFixedDelay 的区别
  • [题解]P11095 [ROI 2021] 旅行 (Day 2)
  • DDR5内存时序参数对照表
  • Linux CentOS 第三方扩展模块编译并安装
  • Java ArrayList中的常见删除操作及方法
  • ADC和GPIO的关系
  • 使用Docker Compose工具进行容器编排的教程
  • 模拟输入的过程
  • 基于Redisson和自定义注解的分布式锁实现策略
  • CCPC2025网络赛 游记
  • 知行合一
  • Manim实现水波纹特效
  • 深入解析:解锁AI智能体:上下文工程如何成为架构落地的“魔法钥匙”
  • JS之使用for...of赋值失败的原因分析
  • String
  • Linux /lib/modules/$(uname -r)/ 目录功能作用详解
  • 《建筑的永恒之道》第 27 章:道之核心
  • 软件工程第二次作业_个人项目
  • Linux命令大全(档案管理)
  • 小狼毫雾凇拼音安装部署
  • Chapter 3 Resize and Cropping
  • 详细介绍:java中常见的几种排序算法
  • 使用FFmpeg转换m4a