当前位置: 首页 > 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.zskr.cn/news/8886.html

相关文章:

  • 插值相关
  • 详解scheduleAtFixedRate 与 scheduleWithFixedDelay 的区别
  • 模拟输入的过程
  • Manim实现水波纹特效
  • CSP 2025 S1 游记
  • JS之使用for...of赋值失败的原因分析
  • Linux /lib/modules/$(uname -r)/ 目录功能作用详解
  • 软件工程第二次作业_个人项目
  • Chapter 3 Resize and Cropping
  • 解决Kubernetes集群中master节点无法与node节点通信的策略
  • 配置Nginx以支持Websocket连接的方法
  • Extundelete工具恢复数据
  • 最新!!!MySQL环境搭建(windows系统) - 详解
  • SQLite数据库 - 教程
  • 【Bluedroid】A2DP Source 音频流暂停流程解析[3]:AVDTP 协议中 Suspend Accept 响应的处理流程与建立分析(Suspend Accept)
  • Mysql查询条件里的字符串不加引导索引失效
  • 详细介绍:在Ubuntu平台搭建RTMP直播服务器使用SRS简要指南
  • 实用指南:在 k8s 上部署 Kafka 4.0 3节点集群
  • 完整教程:VLAN划分——TRUNK
  • 现代操作系统-音频处理技术1 Linux驱动底层
  • 智元首次明确七人合伙人团队
  • ABC424
  • 解决 Windows 无法挂载 HTTP WebDAV(AList,OpenList)的问题
  • HN CSP-S 2024 游记
  • 关于oj在创建文件夹失败的原因
  • 图解15:DNS工作原理
  • 图解12:软件开发8大模型
  • 图解13:软件版本是怎么命名的
  • 图解14:CDN(最近使用的都是阿里云的)
  • WINUI/WPF——自定义ListView