Linux内存的释放

    在Linux系统下,一般不需要释放内存,因为系统已经将内存管理的很好了。但凡是也有例外,有的时候内存会被莫名其妙的占用掉,导致系统内存很低,此时就需要释放内存(清理缓存)。

    Linux系统的缓存机子是相当先进的,它会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作。但是在进行了大量的文件操作后,缓存会把内存资源基本用光。但实际上我们文件操作已经完成,这部分缓存已经用不到了。这个时候我们难道只能眼睁睁的看着缓存 把内存空间占据掉么(不可能)?
    要达到释放缓存的目的,我们首先要了解下关键的配置文件 /proc/sys/vm/drop_caches  这个文件记录了缓存释放的参数,默认值为0,也就是不释放缓存,同时其有也其他的参数:

    0    :不释放缓存

    1    :释放页缓存

       :释放dentries和inodes

    3    :释放所有缓存


    下面开始对缓存进行释放:

    (1)#free -m  首先查看内存使用情况


    (2)#sync   使用sync命令,将所有未写的系统缓冲区写到磁盘中,包含已修改的inode、已延迟的块I/O和读写映射文件。否则在释放缓存的过程中,可能会丢失保存的文件。

    (3)#echo 3 > /proc/sys/vm/drop_caches  将需要的参数写入到文件中,此命令输入后立即生效,此时可以直接查看可使用内存就会明显增加

       #cat /proc/sys/vm/drop_caches

    (4)#sysctl -p    使配置立即生效

    (5)#free -m    查看内存情况

        


你可能感兴趣的:(linux内存,内存释放,增加内存)