1. drop_caches

在Documentation/sysctl/vm.txt中有如下描述:

drop_caches:Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.

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

As this is a non-destructive operation and dirty objects are not freeable, the user should run `sync' first.

2. cache 和 buffer的区别

  Cache:高速缓存,是位于CPU主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache

  Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。

  Free中的buffer和cache:(它们都是占用内存):

  buffer : 作为buffer cache的内存,是块设备的读写缓冲区

  cache: 作为page cache的内存, 文件系统的cache

  如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi会非常小。

Linux/Centos/Ubuntu清除系统缓存释放内存命令具体操作步骤

为了提高磁盘存取效率,Linux做了一些精心的设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换),还采取了两种主要 Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。linux内存可使用的计算方法:可用内存=free+buffers+cached,清理缓存按如下顺序操作即可:

1、当前内存使用情况:free

total            used            free          shared     buffers     cached

Mem:      12296092    11812364     483728          0          390868    10336804

-/+ buffers/cache:    1084692   11211400

Swap:      8385920        164    8385756

free命令解释:

total 内存总数

used 已经使用的内存数

free 空闲的内存数

shared 多个进程共享的内存总额

buffers Buffer Cache和cached Page Cache 磁盘缓存的大小

-buffers/cache 的内存数:used - buffers - cached

+buffers/cache 的内存数:free + buffers + cached

2、sync(sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件,一定要在第3步之前运行这个命令)

3、echo 3 > /proc/sys/vm/drop_caches

4、查看内存使用情况:free

total      used      free        shared    buffers     cached

Mem:      12296092     890740   11405352          0       3012     131116

-/+ buffers/cache:     756612   11539480

Swap:      8385920        164    8385756

5、echo 0 > /proc/sys/vm/drop_caches

这是一种比较常用的释放缓存的方法,但是建议还是不要经常使用,如果swap没有使用很多的情况下,可以不做任何操作,以保证系统稳定运行,一但swap开始使用了,就考虑分析程序或者增加物理内存吧。一般情况下,应用在系统上稳定运行了,free值也会保持在一个稳定值的,虽然看上去可能比较小。当发生内存不足、应用获取不到可用内存、OOM错误等问题时,还是更应该去分析应用方面的原因,如用户量太大导致内存不足、发生应用内存溢出等情况,否则,清空buffer,强制腾出free的大小,可能只是把问题给暂时屏蔽了。

Linux清除系统缓存释放内存命令介绍相关推荐

  1. linux的swap与memory,【Linux】Linux中Swap与Memory内存简单介绍

    背景介绍 对于Linux来说,其在服务器市场的使用已经占据了绝对的霸主地位,不可动摇.Linux的各种设计思想和使用也被传承(当然不乏各种黑Linux,而且黑的漂亮).Linux的很多独特的设计,对性 ...

  2. Linux磁盘系统——管理磁盘的命令

    Linux磁盘系统--管理磁盘的命令 摘要:本文主要学习了Linux系统中管理磁盘的命令,包括查看磁盘使用情况.磁盘挂载相关.磁盘分区相关.磁盘格式化等操作. df命令 df命令用于显示Linux系统 ...

  3. 如何清除DNS缓存,使用cmd命令清理DNS缓存方法

    如何清除DNS缓存,使用cmd命令清理DNS缓存方法 有时候电脑突然上不了网,或者存在某些网站打不开的情况,但别的网站又可以打开,解决办法需要清除DNS缓存,那么如何清除DNS缓存呢,最常用的方法就是 ...

  4. Linux清除arp缓存

    Linux清除arp缓存: arp -n | awk '/^[1-9]/ {print "arp -d " $1}' | sh -x

  5. linux释放内存命令

    1.首先查看linux内存使用 #free -m 2.把内存数据同步到硬盘 #sync 3.修改 /proc/sys/vm/drop_caches文件 #echo 3 > /proc/sys/v ...

  6. linux清除网络缓存命令,如何清空linux的DNS缓存

    一.Linux下清空DNS缓存 Linux下DNS缓存实现通常有两种方式: 一种是用DNS缓存程序NSCD(name service cache daemon)负责管理DNS缓存. 一种实现DNS缓存 ...

  7. CentOS x86_64系统手动释放内存

    转载:https://blog.51cto.com/yuhongchun/1430026 线上集群后端某台Web服务器例行检查时,我观察到+buffers/cache值(即Linux内存的实际使用情况 ...

  8. linux文件命令介绍,linux文件搜索及其它基础命令介绍(3)

    1.linux中包含大量的文件,对于文件查找,linux提供了find命令. find是一个非常有效的工具,它可以遍历目标目录甚至整个文件系统来查找某些文件或目录: find [path...] [e ...

  9. linux std::queue 怎么释放内存_电脑卡慢怎么办?一个小工具帮你轻松释放内存,瞬间提升电脑性能...

    有一种电脑叫"卡巴死机" 大家有没有发现,如今的电子产品越来越不耐用了. 无论是电脑,还是手机,超过一年以上,就得考虑更换了. 1G变2G,2G升4G,按理说电脑应该会更快更好,实 ...

最新文章

  1. SpringBoot-web开发(二): 页面和图标定制(源码分析)
  2. 中山网络推广解答网站排名优化为什么总是上不了首页!
  3. 前端一HTML:十八:元素的显示方式
  4. gba徽章机器人_徽章战士GBA攻略
  5. 想要 24 小时自学编程,那是不可能的,先自学 10000 小时再说!
  6. 使用python写一个倒计时_Python 实现一个计时器
  7. 【转载】关联分析中的支持度、置信度和提升度
  8. python用turtle画彩虹_Python基础实例——绘制彩虹(turtle库的应用)
  9. 第九届蓝桥杯-嵌入式比赛体会与备赛经验
  10. imagej得到灰度图数据_Java图像处理最快技术:ImageJ 学习第一篇
  11. PHP幸运抽奖系统带后台源码
  12. 优酷Android包瘦身治理思路
  13. python中sqrt函数用法_Python : sqrt() 函数
  14. VMware ESXI虚拟机修改MAC地址的方法
  15. 电子与计算机工程导论,BGPLUS科研荟萃 | 杜克大学 | 电子工程、计算机工程:电子与计算机工程导论...
  16. 纯js实现减速滚动置顶效果
  17. xml开发笔记(一):tinyXml2库介绍、编译和工程模板
  18. Unreal资源引用(一)
  19. 自定义弹框一(PopupWindow实现) 响应两种点击事件
  20. 【SQL Server】10分钟快速安装SQL Server

热门文章

  1. 鼎捷T100 Linux基础篇
  2. 坚果 R1 手机和 TNT 电脑发布:裤子都脱了,罗永浩你给我看这个?
  3. Q620D高强板抗拉屈服强度及Q620D厚度方向抗撕裂性能
  4. 【软件工程理论与实践】(笔记)
  5. 4.3 自动驾驶的安全结构(第四章 车辆的动态建模)
  6. HDMI(三):VGA
  7. 谈谈android数据存储方式
  8. java=new()的用法
  9. 【语言基础】各语言教程和帮助手册汇总
  10. 小米8 twrp recovery_twrp官网手机代号合集-彻底了解小米手机代号名称