念念不忘
必会回响

Linux内存清理/释放命令

NameNode节点忽然挂了,重启后提示OOM,但是这台测试机的内存是16G的,只运行了Namenode和Jenkins,不至于OOM。于是使用free命令查看,发现cached的缓存有10G。很不正常,于是需要进行缓存释放。

echo 1 > /proc/sys/vm/drop_caches

此时在使用free -g就发现cached的缓存以及没有了。

cache释放:
Sync

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 (释放页面缓存,dentries和inode):

echo 3 > /proc/sys/vm/drop_caches

说明,释放前最好sync一下,防止丢数据。

补充:free命令的补充

[hadoop@OP-APM-02 hadoop]$ free
             total       used       free     shared    buffers     cached
Mem:      16199748    2625692   13574056      12648      91292     382608
-/+ buffers/cache:    2151792   14047956
Swap:      4194300          0    4194300

其中第一行用全局角度描述系统使用的内存状况:

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

第二行描述应用程序的内存使用:
前个值表示-buffers/cache——应用程序使用的内存大小,used减去缓存值
后个值表示+buffers/cache——所有可供应用程序使用的内存大小,free加上缓存值

  • note:
    • -buffers/cache=used-buffers-cached
    • +buffers/cache=free+buffers+cached

第三行表示swap的使用:

  • used——已使用
  • free——未使用

手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)

赞(0) 打赏
未经允许不得转载:堆上小栈 » Linux内存清理/释放命令

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册