编辑
2023-06-12
Linux
00
  • 有时候我们会遇见buff/cache区内存占用过大的时候,如图。

在 Linux 中,内核使用部分内存来存储缓冲区(buffers)和缓存(cache),以提高系统的性能。然而,如果需要,内核会自动释放这些缓冲区和缓存中的内存。

在某些情况下,例如进行性能测试或故障排查时,你可能希望手动清理缓冲区和缓存。在 Linux 中,你可以通过向 /proc/sys/vm/drop_caches 写入特定值来清理缓冲区和缓存。

请注意,这个操作需要 root 权限,而且在正常的系统操作中通常是不需要的。在清理缓冲区和缓存之前,你应该确保你理解这个操作的影响。

  • 以下是清理缓冲区和缓存的命令:
bash
# 清理页面缓存: echo 1 > /proc/sys/vm/drop_caches # 清理目录项(dentries)和索引节点(inodes): echo 2 > /proc/sys/vm/drop_caches # 清理页面缓存、目录项和索引节点: echo 3 > /proc/sys/vm/drop_caches echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches

在运行这些命令之后,你可能会发现可用内存的数量增加了。然而,这可能会导致系统的性能稍微下降,直到内核再次填充缓冲区和缓存。

一定要注意,这些操作不会影响应用程序的性能,因为它们并不会清理应用程序正在使用的内存,只是清理空闲和预读取的缓存

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Golovin

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!