关于echo 多少清理缓存的总结

/proc 主要体现的是进程和内核的一些信息的状态,多数的文件是只读的,但是管理员可以对 /proc/sys 中的一些子文件进行修改,

更改内核的运行特性。

   对于n的值不同的时候表现的free -m 的表现也是不同的

可以查看一下 /proc/sys/vm/drop_caches 的初始值是多少。记录下来

echo 1 > /proc/sys/vm/drop_caches

主要发生变化的是buffer 和 cache的两个选项

由于后边的两个选项发生了变化,前边的两个 used 和 free 两个都发生变化了

执行echo 2 > /proc/sys/vm/drop_caches, 其中绿色框是标记发生改变的部分,这次仅有buffers由0变为1,cached基本没有变化。

执行echo 3 > /proc/sys/vm/drop_caches, 这次基本上,和写入2区别不大,没有什么变化。

以上的现象说明了:

通过输入不同的值,buffers 是有不同的变化的

2.1、内核文档说明

  查看linux内核文档,可以得到以下信息:

可以看出 /proc/sys 是一个虚拟的文件系统,我们可以通过对它的读写操作,作为与kernel的实体间的通信的一种手段,可以通过echo 不同的数字来释放内存。默认值是0

向drop_caches 中写入数字。可以释放缓存,执行之前可以先sync,然后再执行echo 数字的命令。

sync的命令可以将所有未写的系统缓冲区,写到磁盘中,包含已经修改的inode,已延迟的块和读写的映射文件

执行echo 1 2 3达到不同的清理目的

2.2、使用建议

这里找到一份关于清理缓存的使用建议手工释放linux内存.

  实际项目中告诉我们,如果因为是应用有像内存泄露、溢出的问题,从swap的使用情况是可以比较快速可以判断的,但free上面反而比较难查看。相反,如果在这个时候,我们告诉用户,修改系统的一个值,“可以”释放内存,free就大了。用户会怎么想?不会觉得操作系统“有问题”吗?所以说,我觉得既然核心是可以快速清空buffer或cache,也不难做到(这从上面的操作中可以明显看到),但核心并没有这样做(默认值是0),我们就不应该随便去改变它。

  一般情况下,应用在系统上稳定运行了,free值也会保持在一个稳定值的,虽然看上去可能比较小。当发生内存不足、应用获取不到可用内存、OOM错误等问题时,还是更应该去分析应用方面的原因,如用户量太大导致内存不足、发生应用内存溢出等情况,否则,清空buffer,强制腾出free的大小,可能只是把问题给暂时屏蔽了。

  我觉得,排除内存不足的情况外,除非是在软件开发阶段,需要临时清掉buffer,以判断应用的内存使用情况;或应用已经不再提供支持,即使应用对内存的时候确实有问题,而且无法避免的情况下,才考虑定时清空buffer。(可惜,这样的应用通常都是运行在老的操作系统版本上,上面的操作也解决不了)。

echo /proc/vm/drop_caches相关推荐

  1. linux跑程序占用缓存过多释放内存echo 3 > /proc/sys/vm/drop_caches

    在跑pytorch时出现了占用内存过多的问题,当然这个问题可以通过调小num_workers解决,不过还有手动解决办法就是释放内存,命令如下: echo 3 > /proc/sys/vm/dro ...

  2. linux的cache过高的原因定位与解决echo 3 > /proc/sys/vm/drop_caches

    先说结论解决办法: 一.在crontab定时执行echo 3> /proc/sys/vm/drop_caches清理缓存.治标不治本,过段时间缓存又会增加上来. 二.hcache -top 10 ...

  3. Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches

    Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches 频繁的文件访问会导致系统的Cache使用量大增 $ free -m total used free shared ...

  4. linux内存——/proc/sys/vm/drop_caches

    原贴:http://www.linuxfly.org/post/320/ http://blog.csdn.net/chinalinuxzend/article/category/265273/2 h ...

  5. 手工释放linux内存——/proc/sys/vm/drop_caches

    总有很多朋友对于Linux的内存管理有疑问,之前一篇[转]理解Linux的性能日志似乎也没能清除大家的疑虑.而在新版核心中,似乎对这个问题提供了新的解决方法,特转出来给大家参考一下.最后,还附上我对这 ...

  6. linux proc 自动清理,Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches

    Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches 频繁的文件访问会导致系统的Cache使用量大增 $ free -m total used free shared ...

  7. /proc/sys/vm虚拟内存参数

    1.admin_reserve_kbytes 给有cap_sys_admin权限的用户保留的内存数量,默认值是min(free pages * 3%, 8MB).这些内存是为了给管理员登录和杀死进程恢 ...

  8. 内核proc参数注释(kernel、vm、net、fs四类)

    转载自:https://www.cnblogs.com/tolimit/p/5065761.html 原作者很详细的列出了proc的这类接口,方便大家查询,中间有些还没有补充完整,待遇到了再补充吧,感 ...

  9. linux程序员的proc文件系统

    1) 设置core文件存放路径和文件名模式: 设置/proc/sys/kernel/core_pattern,如: echo "core" > /proc/sys/kerne ...

  10. linux cache 内核参数,Linux内核中drop_caches参数

    该参数从 Kernels 2.6.16 开始引入,用于调整内核清理缓存的行为,该操作将回收缓存及清理可回收对象.一旦回收完成,该部分内存将变成 free . drop_caches 参数共有三个值: ...

最新文章

  1. 美利好车的微服务实践
  2. mysql my-small.ini_MySql优化之my-small.ini配置
  3. 简述yolo1-yolo3_使用YOLO框架进行对象检测的综合指南-第二部分
  4. java 矩阵转置_图解利用Java实现数组转置
  5. 数字风控全流程 实操课程V2.0 第三期
  6. html如何取单元格内容,JS获取表格内指定单元格html内容的方法
  7. 转载:国内从事机器视觉领域的公司
  8. rv1126 固件编译规则
  9. crnn pytorch 训练、测试
  10. 【leetcode】995. Minimum Number of K Consecutive Bit Flips
  11. 用excel制作项目管理甘特图
  12. IPV6 over IPV4 自动隧道
  13. No result defined for action com.lzj.web.action.CustomerAction and result input
  14. 新计算机分区,全新的电脑怎么给新硬盘分区?
  15. 图像分割-分水岭算法和GrabCut 算法
  16. windows系统巨型帧问题
  17. 朱雀雀openfire+spark相关的中文资料
  18. 简单区块链系统实现之程序运行
  19. 个人简评——2345王牌拼音输入法
  20. 服务了上万家企业做数字化转型后,我们写下了这本书

热门文章

  1. 【Tableau Desktop 企业日常问题29】Tableau desktop 更换电脑的时候 迁移License
  2. tableau连接Mysql出现的密码验证 cannot be loaded
  3. java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses
  4. 在安装win7系统时如何不产生100M的系统保留分区
  5. Pm2 部署 Nuxt 项目
  6. 【蓝屏解决】笔记本频繁蓝屏,错误代码IRQL_NOT_LESS_OR_EQUAL
  7. Softlink Hardlink
  8. win32com在wps上另存为SaveAs报错
  9. 金蝶服务器显示已离线,金蝶K3提示云服务器已离线
  10. 新托业模拟考试感言—了解一下参加过托业考试前辈们的经验03