0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux释放内存的方法

h1654155282.3538 来源:运维小笔记 作者:运维小笔记 2021-02-21 10:34 次阅读

一般系统是不会自动释放内存的 关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就是不释放缓存。它的值可以为0~3之间的任意数字,代表着不同的含义:

0:0是系统默认值,默认情况下表示不释放内存,由操作系统自动管理

1:释放页缓存

2:释放dentries和inodes

3:释放所有缓存

实操:

所以根据上面的说明,分别将1,2,3这3个数字重定向到drop_caches中可以实现内存的释放,一般释放内存都是重定向3到文件中,释放所有的缓存

那么下面举个例子,比如这里只释放页缓存,首先使用 free -h 查看当前内存剩余

当前内存剩余570M左右,另外buff/cache是1.3G,根据上面说的现在真正的剩余内存应该是1.8G左右,首先写缓存到文件系统:

sync

然后执行下面命令释放内存(页缓存buff/cache):

echo 1 》 /proc/sys/vm/drop_caches

执行完之后,再次查看内存剩余:

会发现内存被释放了,可用内存确实变为1.8G左右

到这里内存就释放完了,现在drop_caches中的值为1,如果现在想让操作系统重新分配内存,那么设置drop_caches的值为0即可:

echo 0 》 /proc/sys/vm/drop_caches

另外需要注意的是,在生产环境中的服务器我们不要频繁的去释放内存,只在必要时候清理内存即可,更重要的是我们应该从应用程序层面去优化内存的利用和释放,经常清理内存可能只是暂时屏蔽的应用程序中的一些bug,所以更重要的是程序的调优,其他的交给操作系统来管理
责任编辑人:CC

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10986

    浏览量

    206720
  • 内存
    +关注

    关注

    8

    文章

    2763

    浏览量

    72749
收藏 人收藏

    评论

    相关推荐

    linux下查询进程占用的内存方法有哪些?

    linux下查询进程占用的内存方法
    发表于 04-08 06:03

    查看Linux系统内存使用情况的几种方法

    Linux系统中,内存监控是优化系统性能的关键。本文为你介绍12种方法,帮助你全面掌握Linux系统的内存使用情况。这些
    的头像 发表于 11-13 09:30 1693次阅读
    查看<b class='flag-5'>Linux</b>系统<b class='flag-5'>内存</b>使用情况的几种<b class='flag-5'>方法</b>

    常用的解决内存错误的方法

    :同一块内存释放两次 • use after free:内存释放后使用 • wild free:释放内存
    的头像 发表于 11-10 15:29 728次阅读
    常用的解决<b class='flag-5'>内存</b>错误的<b class='flag-5'>方法</b>

    Linux 内存管理总结

    一、Linux内存管理概述 Linux内存管理是指对系统内存的分配、释放、映射、管理、交换、压缩
    的头像 发表于 11-10 14:58 240次阅读
    <b class='flag-5'>Linux</b> <b class='flag-5'>内存</b>管理总结

    freertos怎么释放任务的内存空间?

    freertos怎么释放任务的内存空间
    发表于 10-12 07:20

    free在释放内存的时候,为什么不需要指定内存的大小?

    malloc在申请内存的时候,需要指定内存的大小,申请成功则返回这块内存的地址,但是free的时候,只需要指定释放内存的起始地址,系统就知
    的头像 发表于 09-15 17:05 989次阅读
    free在<b class='flag-5'>释放</b><b class='flag-5'>内存</b>的时候,为什么不需要指定<b class='flag-5'>内存</b>的大小?

    Linux内核的内存管理详解

    内存管理的主要工作就是对物理内存进行组织,然后对物理内存的分配和回收。但是Linux引入了虚拟地址的概念。
    发表于 08-31 14:46 425次阅读
    <b class='flag-5'>Linux</b>内核的<b class='flag-5'>内存</b>管理详解

    Linux内核的物理内存组织结构详解

    Linux内存管理子系统使用 节点(node)、区域(zone)和页(page) 三级结构描述物理内存
    发表于 08-21 15:35 245次阅读
    <b class='flag-5'>Linux</b>内核的物理<b class='flag-5'>内存</b>组织结构详解

    heap_2内存的特性与分配方法

    heap_2 内存分配方法 heap_2 提供了一个更好的分配算法,不像 heap_1那样,heap_2 提供了内存释放函数。heap_2 不会把
    的头像 发表于 07-30 10:36 364次阅读

    Linux下查询进程占用的内存方法总结

    今天浩道跟大家一篇关于运维牛人如何在Linux下挖出吃内存的进程,可以说是相当干的一个运维技能了,一起看看吧!
    发表于 07-27 10:51 9144次阅读
    <b class='flag-5'>Linux</b>下查询进程占用的<b class='flag-5'>内存</b><b class='flag-5'>方法</b>总结

    Linux内存相关知识科普

    Linux 内核几种内存管理的方法内存使用场景以及内存使用的那些坑。**从内存的原理和结构,
    发表于 07-25 14:43 539次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内存</b>相关知识科普

    一文详解Linux虚拟内存技术

      以存储单元为单位来管理显然不现实,因此Linux把虚存空间分成若干个大小相等的存储分区,Linux把这样的分区叫做页。为了换入、换出的方便,物理内存也就按页的大小分成若干个块。由于物理内存
    发表于 07-17 17:29 409次阅读
    一文详解<b class='flag-5'>Linux</b>虚拟<b class='flag-5'>内存</b>技术

    细说Linux内存泄漏检测实现原理与实现

    在使用没有垃圾回收的语言时(如 C/C++),可能由于忘记释放内存而导致内存被耗尽,这叫 内存泄漏。由于内核也需要自己管理内存,所以也可能出
    发表于 07-03 09:22 335次阅读
    细说<b class='flag-5'>Linux</b><b class='flag-5'>内存</b>泄漏检测实现原理与实现

    Linux内存泄漏检测实现原理与实现

    在使用没有垃圾回收的语言时(如 C/C++),可能由于忘记释放内存而导致内存被耗尽,这叫 内存泄漏。
    的头像 发表于 07-03 09:21 423次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内存</b>泄漏检测实现原理与实现

    Linux内存管理的详细介绍分享

    内存管理是计算机系统中负责管理系统内存资源的一种机制,主要包括内存分配、内存释放内存映射和虚拟
    的头像 发表于 05-29 14:09 1393次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内存</b>管理的详细介绍分享