Linux:手动释放内存
在Linux中,查看内存:
1 2 3 4 5 6 |
[root@LINUX-ME product]# free -m total used free shared buffers cached Mem: 24029 23761 267 0 139 17644 -/+ buffers/cache: 5977 18051 Swap: 4615 4583 32 [root@LINUX-ME product]# |
如上:
MEM行,单位:MB:空闲内存 = 【free】 + 【buffers】 + 【cached】
在本例中,也就是:
267 + 139 + 17644 = 18050 MB
MEM行,单位:MB:已用内存 = 【total】 – 空闲内存
在本例中,也就是:
24029 – 18050 = 5979 MB
计算方法就是上面说的这样,… 接下来是每部分的含义:
【buffers】缓存:metadata + pages,也就是通常所说的系统缓存。
eg:
vi 打开一个文件,会将这个文件缓存到内存,如果文件过大,而内存不够,就会报错,这个在我以前的日志(本站就可以找到)中有过记录。
【cached】缓存:对文件做缓存,也可以说是数据缓存。
eg:
做【dd】操作的时候。
SWAP:是在上面物理内存不够用的时候用的时候使用SWAP空间。
清理内存方法:
页面缓存:pagecache
echo 1 > /proc/sys/vm/drop_caches
目录缓存与inodes:
echo 2 > /proc/sys/vm/drop_caches
清理:pagecache / dentries / inodes
echo 3 > /proc/sys/vm/drop_caches
清理前,先用sync,将内存中的:
1. 系统缓存
2. 僵尸进程
3. 僵尸进程占用的内存资源
全部刷到磁盘中或者释放掉:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@LINUX-ME product]# free -m total used free shared buffers cached Mem: 24029 23761 267 0 139 17644 -/+ buffers/cache: 5977 18051 Swap: 4615 4583 32 [root@LINUX-ME product]# [root@LINUX-ME product]# [root@LINUX-ME product]# sync [root@LINUX-ME product]# [root@LINUX-ME product]# free -m total used free shared buffers cached Mem: 24029 23769 259 0 139 17651 -/+ buffers/cache: 5978 18050 Swap: 4615 4583 32 [root@LINUX-ME product]# |
执行内存清理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@LINUX-ME product]# cat /proc/sys/vm/drop_caches 0 [root@LINUX-ME product]# echo 3 > /proc/sys/vm/drop_caches [root@LINUX-ME product]# [root@LINUX-ME product]# cat /proc/sys/vm/drop_caches 3 [root@LINUX-ME product]# [root@LINUX-ME product]# free -m total used free shared buffers cached Mem: 24029 5499 18529 0 1 24 -/+ buffers/cache: 5474 18554 Swap: 4615 4583 32 [root@LINUX-ME product]# [root@LINUX-ME product]# echo 0 > /proc/sys/vm/drop_caches [root@LINUX-ME product]# |
——————————————————
Done。