zoukankan      html  css  js  c++  java
  • Linux cached过高问题

    1、cached主要负责缓存文件使用, 日志文件过大造成cached区内存增大把内存占用完 .

    Free中的buffer和cache:(它们都是占用内存):
    buffer : 作为buffer cache的内存,是块设备的读写缓冲区
    cache: 作为page cache的内存, 文件系统的cache
    如果 cache 的值很大,说明cache住的文件数很多。

    Linux 内存管理做了很多精心的设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换),还采取了两种主要Cache方式:Buffer Cache和Page Cache,目的就是为了提升磁盘IO的性能。从低速的块设备上读取数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,它可以从内存中直接读取,从而绕开低速的块设备,从而提高系统的整体性能。而Linux会充分利用这些空闲的内存,设计思想是内存空闲还不如拿来多缓存一些数据,等下次程序再次访问这些数据速度就快了,而如果程序要使用内存而系统中内存又不足时,这时不是使用交换分区,而是快速回收部分缓存,将它们留给用户程序使用。

    因此,可以看出,buffers/cached真是百益而无一害,真正的坏处可能让用户产生一种错觉——Linux耗内存!其实不然,Linux并没有吃掉你的内存,只要还未使用到交换分区,你的内存所剩无几时,你应该感到庆幸,因为Linux 缓存了大量的数据,也许下一次你就从中受益!

    2、手动释放cached

    To free pagecache:  echo 1 > /proc/sys/vm/drop_caches

    To free dentries and inodes:  echo 2 > /proc/sys/vm/drop_caches

    To free pagecache, dentries and inodes:  echo 3 > /proc/sys/vm/drop_caches

  • 相关阅读:
    [速记]关于指针,引用和递归和解递归——C++
    查找(二)——基于二叉排序树的查找
    查找总结(一)-----简单查找和折半查找
    jdk代理和cglib代理
    IOC和AOP使用扩展 多种方式实现依赖注入
    InputStream和Reader
    Spring IoC
    Spring AOP(aspect oriented programming) 转载
    数据校验与国际化
    Struts2 之 实现文件上传(多文件)和下载
  • 原文地址:https://www.cnblogs.com/yanwei-wang/p/8133888.html
Copyright © 2011-2022 走看看