在 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
在运行这些命令之后,你可能会发现可用内存的数量增加了。然而,这可能会导致系统的性能稍微下降,直到内核再次填充缓冲区和缓存。
一定要注意,这些操作不会影响应用程序的性能,因为它们并不会清理应用程序正在使用的内存,只是清理空闲和预读取的缓存
本文作者:Golovin
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!