linux上内存释放

来源:互联网 发布:mac画图工具 编辑:程序博客网 时间:2024/05/14 16:58

1)首先使用free -m  或free -g去查看内存的使用率

root@root:/home/test# free -g             total  used  free  shared  buffers  cachedMem:            15   6    8   0     0     0-/+ buffers/cache:            6   9Swap:           10   0   10##实际上在一个进程结束后其内存是会被释放的,但是内核没有立刻把内存收集到free中,而是存放在cache或buffers当中,以提高系统的IO效率,cache和buffered的内存是由内核进行动态的配置管理,如果系统的free大小不够的时候,系统会自动释放cache buffer的内存给程序使用!如果说used占用很多,free很少,而且cache和buffer占的比例也很小,那表明内存是不够用了##

 

2)如果需要看到free比较多,可以尝试这样

1、使用sync命令将所有未写的系统缓存区write to disk,包含已修改的i node、已延迟的块I\O和读写映射[root@ipython ~]# sync2、粗暴清理[root@root~]# echo 0 > /proc/sys/vm/drop_caches##可以看到默认是0,drop_caches提供了三个选项操作##1 清空页缓存   2 清空inode和目录树缓存  3 清空所有的缓存----清空缓存页-----------[root@root~]# echo 1 > /proc/sys/vm/drop_caches-----------------------------------------------------------root@root:/home/test# free -g             total       used       free     shared    buffers     cachedMem:            15         6        9          0          0          0-/+ buffers/cache:     6         9Swap:           10        0         10