在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操作。因此,这不是一个推荐在生产环境中定期运行的操作,应该只在特定的测试或者诊断环境中使用。

在执行这些操作时,请确保当前没有进行大量的磁盘写操作,因为这可能会导致数据丢失或者文件系统的不一致。

此外,只有系统管理员或具有适当权限的用户才能执行这些命令,因为这涉及到系统级的操作。普通用户尝试执行这些操作会因权限不足而失败。

云服务器/高防CDN推荐

蓝易云国内/海外高防云服务器推荐


海外免备案云服务器链接:www.tsyvps.com

蓝易云安全企业级高防CDN:www.tsycdn.com

持有增值电信营业许可证:B1-20222080【资质齐全】

蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。


百度搜索:蓝易云

最后修改:2023 年 11 月 27 日
如果觉得我的文章对你有用,请随意赞赏