清除系统缓存提高写盘速度的tips

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

上面是一个常用于 Linux 系统的命令组合,主要用于清理内存中的缓存。下面是对这条命令的详细解释:

  1. sync
    sync 命令用于将所有未写入磁盘的缓存数据写入磁盘。Linux 操作系统会将一些数据保存在内存中(例如文件系统的缓冲区),以提高性能。执行 sync 命令后,系统会将所有这些缓存数据写入磁盘,从而确保所有文件系统的数据都处于一致状态。这是为了防止在清理缓存时丢失数据。

  2. echo 3 > /proc/sys/vm/drop_caches
    这个命令部分的作用是通过向 /proc/sys/vm/drop_caches 文件写入一个值,来指示内核清理特定的内存缓存。不同的值有不同的作用:

echo 1 > /proc/sys/vm/drop_caches:清理页缓存(page cache)。
echo 2 > /proc/sys/vm/drop_caches:清理目录项缓存(dentries)和 inode 缓存。
echo 3 > /proc/sys/vm/drop_caches:清理页缓存、目录项缓存和 inode 缓存。
其中,3 是 1 和 2 的组合,因此 echo 3 会同时清理页缓存、目录项缓存和 inode 缓存。

  1. 总结
    组合起来看,sync; echo 3 > /proc/sys/vm/drop_caches 命令执行以下操作:

sync 确保所有数据都写入磁盘,避免数据丢失。
echo 3 > /proc/sys/vm/drop_caches 清理内存中的所有缓存,以释放内存空间。
通常,这个命令在需要释放系统内存或进行性能测试时使用。不过,这种操作会导致系统性能暂时下降,因为缓存被清理后,下一次访问数据时可能会需要重新加载到缓存中。

当内存中存储了大量数据缓存时,系统的可用内存会减少。在内存资源紧张的情况下,执行 echo 3 > /proc/sys/vm/drop_caches 可以清理内存中的页缓存、目录项缓存(dentries)和 inode 缓存,从而释放出更多的内存空间供程序使用。
如果系统即将进行新的数据缓存或处理操作,尤其是涉及大量数据的处理任务时,清理缓存可以释放内存,为后续操作提供更多的可用内存。这对于大规模数据处理、批处理任务或内存密集型应用尤其有用。
当系统使用大量内存来缓存数据,然后写入磁盘后,缓存数据通常仍然会保留在内存中,以提高读取性能。然而,这些缓存可能会占用大量内存,使得其他需要内存的操作无法顺利进行。通过清理缓存,系统可以将这些内存资源重新分配给其他任务,提高系统整体的内存利用效率。

你可能感兴趣的:(缓存,spring,java)