执行命令free -m
查看系统当前内存使用情况;
执行命令free -h
看内存是否已经释放掉了。
第一行用全局角度描述系统使用的内存状况:
total 内存总数
used 已经使用的内存数,一般情况这个值会比较大,因为这个值包括了cache 应用程序使用的内存
free 空闲的内存数
shared 多个进程共享的内存总额
buffers 缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
cached 缓存,用于已打开的文件
第二行描述应用程序的内存使用:
-buffers/cache 的内存数:used - buffers - cached
buffers/cache 的内存数:free buffers cached
前个值表示-buffers/cache 应用程序使用的内存大小,used减去缓存值
后个值表示 buffers/cache 所有可供应用程序使用的内存大小,free加上缓存值
第三行表示swap的使用:
used 已使用
free 未使用
执行sync命令sync
使用sync命令以确保文件系统的完整性,sync 命令运行 sync 子例程,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。
执行命令sync; echo 1 > /proc/sys/vm/drop_caches
,只清除页面缓存;
执行命令sync; echo 2 > /proc/sys/vm/drop_caches
,清除目录项和inode;
执行命令sync; echo 3 > /proc/sys/vm/drop_caches
,清除页面缓存、目录项和节点;
再次执行命令free -m
可以查看到相比较清理之前,可用内存增加
如果我们需要释放所有缓存,就输入下面的命令:
echo 3 > /proc/sys/vm/drop_caches