linux系统一般不需要我们手动释放内存,必要时也就是释放缓存的操作。
首先了解下配文件/proc/sys/vm/drop_caches:这个文件记录了缓存释放的参数,默认值为0,也是说不释放缓存。它的值可以为0-3之间任意数字,代表着不同的含义:
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
大概了解参数后,就剩下操作了。
首先查看系统内存使用情况free -g 这是以GB显示。
其中第一行用全局角度描述系统使用的内存状况:
total——总物理内存
used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存
free——完全未被使用的内存
shared——应用程序共享内存
buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
cached——缓存,用于已打开的文件
used——已使用
free——未使用
首先我们需要使用sync指令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。
sync #将所有未写入系统缓冲区的数据写到磁盘中
echo 2 > /proc/sys/vm/drop_caches #修改记录缓存参数,该参数按个人情况修改。
此指令输入后会立即生效,可以查询现在的可用内存明显的变多了。
这时查看内存已恢复正常并修改回默认值。