linux drop_caches的总结

drop_caches的作用和参数说明

/proc/sys/vm/drop_caches 是一个位于 Linux 内核虚拟文件系统 /proc 下的文件,它用于控制 Linux 内核中的页缓存(Page cache)的清空操作。

页缓存是 Linux 内核中用于缓存文件系统数据的一种机制,它将磁盘上的文件数据缓存在内存中,以加快对文件的读取操作。但在某些情况下,可能需要手动清空页缓存,以释放内存空间或测试系统性能等。在这种情况下,可以使用 /proc/sys/vm/drop_caches 文件来执行相应的操作。

/proc/sys/vm/drop_caches 文件包含一个整数值,用于指定要执行的清空操作。它的取值如下:

  • 0:不执行清空操作。
  • 1:清空页缓存中的所有脏(dirty)页。
  • 2:清空页缓存中的所有脏页和已使用(used)的页。
  • 3:清空页缓存中的所有脏页、已使用的页和已清理(cleaned)的页。

要执行清空操作,可以使用超级用户权限(root)打开该文件,并将相应的整数值写入其中。例如,可以使用以下命令清空页缓存中的所有脏页:

echo 1 > /proc/sys/vm/drop_caches

清空所有页缓存:

echo 3 > /proc/sys/vm/drop_caches

Note:清空页缓存可能会导致系统性能降低,因为后续的文件读取可能需要重新从磁盘加载数据到页缓存。因此,建议在了解清空操作的影响并确保有效性的情况下才进行使用。

页缓存的状态

在 Linux 内核中,页缓存(Page cache)被组织为不同的状态,包括 dirty(脏)、used(已使用)和cleaned(已清理)。它们的主要区别如下:

Dirty(脏)页:Dirty 页是指页缓存中已被修改或写入数据的页。当应用程序对文件进行写操作时,数据首先会被写入到内存的页缓存中,并被标记为脏页。这些脏页包含了尚未同步到磁盘的数据。当内核执行数据同步操作(如 fsync() 调用、文件关闭和定期刷新)时,或者当内存压力较大时,脏页将被写回到对应的文件或交换空间中。

Used(已使用)页:Used 页是指页缓存中已被访问过的页。当应用程序读取一个文件时,数据从磁盘加载到内存的页缓存中,并被标记为已使用页。已使用页的目的是提高文件读取的性能,因为访问已使用页时无需再次从磁盘读取数据。

Cleaned(已清理)页:Cleaned 页是指页缓存中已被写回磁盘或清理的页面。当脏页被写回到磁盘后,它们就会被标记为已清理页。已清理页不包含任何数据,并且可以被重新分配给其他文件的数据。

这些不同状态的页在页缓存中起到不同的作用。Dirty 页表示需要同步到磁盘的数据,Used 页表示被频繁访问的数据,而 Cleaned 页表示已被写回磁盘或清除的可重用页。

需要注意的是,Linux 内核会自动管理页缓存的状态,根据内存压力和应用程序的访问模式来管理数据的加载、写回和清理。清空 dirty 页会导致数据同步到磁盘,而清空 used 页并没有实际的含义,因为 used 页是可以直接被重新使用的。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值