在我的系统上,我有一个日志文件,每小时进行一次轮换和上传。 该文件在写入时很繁重,只有在旋转和上传时才需要读取。
我的系统上的cached内存正在增加,直到它分配整个RAM,然后操作系统清除其中的一部分。 我想改善这个过程,我怀疑这个日志文件的caching是不断增加的,我一直在写这个日志文件。
我需要find一种方法来清除该文件的caching后,我可以告诉操作系统这已不再需要,让它释放内存。
据我所知, echo 3 > /proc/sys/vm/drop_caches清除所有caching的内存。 那是对的吗?
有没有什么办法只为一个文件清理caching的内存?
一般来说,最好是让操作系统自己pipe理内存。 用作caching的内存将在请求时返回给进程。
当系统定期使用大量内存进行stream程时,您只需要开始采取行动,或者您已经超越了这一点,并且正在交换。 你应该有适当的监控来提醒你这些问题。
除非你知道你在做什么,否则不鼓励使用/proc/sys/vm/drop_caches 。 相关的内核文档有这个说法
使用此文件可能会导致性能问题。 由于它放弃了caching的对象,因此可能会花费大量的I / O和CPU来重新创build被删除的对象,特别是在被大量使用的情况下。 因此,build议不要在testing或debugging环境之外使用。