当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux系统清除缓存的方法总结(2)

    栏目:Linux/apache问题 时间:2020-01-29 20:26


    因此,这里不得不提一下/proc/sys/vm/vfs_cache_pressure这个文件,告诉内核,当清理inoe/dentry缓存时应该用什么样的优先级。

    vfs_cache_pressure=100 这个是默认值,内核会尝试重新声明dentries和inodes,并采用一种相对于页面缓存和交换缓存比较”合理”的比例。
    减少vfs_cache_pressure的值,会导致内核倾向于保留dentry和inode缓存。
    增加vfs_cache_pressure的值,(即超过100时),则会导致内核倾向于重新声明dentries和inodes

    总之,vfs_cache_pressure的值:
    小于100的值不会导致缓存的大量减少
    超过100的值则会告诉内核你希望以高优先级来清理缓存。

    其实无论vfs_cache_pressure的值采用什么值,内核清理缓存的速度都是比较低的。
    如果将此值设置为10000,系统将会将缓存减少到一个合理的水平。

    释放内存前先使用sync命令做同步,以确保文件系统的完整性,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。

    /proc是一个虚拟文件系统,可以通过对它的读写操作作为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。也就是说我们可以通过调整/proc/sys/vm/drop_caches来释放内存。

    drop_caches的值可以是0-3之间的数字,代表不同的含义:

    0:不释放(系统默认值)
    1:释放页缓存
    2:释放dentries和inodes
    3:释放所有缓存

    以上就是关于Linux系统清除缓存的全部知识点内容,感谢大家的学习和对IIS7站长之家的支持。