首页 > 代码库 > linux下清理缓存,以释放内存

linux下清理缓存,以释放内存

[root@iZ236c3s4bdZ src]# free
             total       used       free     shared    buffers     cached
Mem:       1920472    1845892      74580        180     462708     338068
-/+ buffers/cache:    1045116     875356
Swap:            0          0          0
[root@iZ236c3s4bdZ ~]# sync
[root@iZ236c3s4bdZ ~]# echo 1 > /proc/sys/vm/drop_caches
[root@iZ236c3s4bdZ ~]# echo 2 > /proc/sys/vm/drop_caches
[root@iZ236c3s4bdZ ~]# echo 3 > /proc/sys/vm/drop_caches
[root@iZ236c3s4bdZ ~]# free
             total       used       free     shared    buffers     cached
Mem:       1920472    1015300     905172        184        992      46960
-/+ buffers/cache:     967348     953124
Swap:            0          0          0
[root@iZ236c3s4bdZ ~]# 

 

找了几天没找到是哪个应用占用的内存.

使用top命令分别查了tomcat, mysql, mongodb, nginx, fastdfs, redis...等的应用, 均未发现占用忒高的情况.

无奈, 在网上看到了上面的方法, 记录下来, 先救急用吧.

说明:

  切记释放缓存前先执行sync命令, 防止数据丢失.

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

 

扫盲:

total——总物理内存
used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存
free——完全未被使用的内存
shared——应用程序共享内存
buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
cached——缓存,用于已打开的文件

 

linux下清理缓存,以释放内存