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

    文章

    11302

    浏览量

    209430
  • 内存
    +关注

    关注

    8

    文章

    3023

    浏览量

    74032
收藏 人收藏

    评论

    相关推荐

    Linux下如何管理虚拟内存 使用虚拟内存时的常见问题

    Linux系统中,虚拟内存管理是操作系统内核的一个重要功能,负责管理物理内存和磁盘上的交换空间。以下是对Linux下如何管理虚拟内存以及使
    的头像 发表于 12-04 09:19 379次阅读

    C语言中申请的堆内存能不能自动释放

    C语言中申请的堆内存能不能自动释放?每次都要手动 free 太麻烦,也容易忘记。 学过 C++ 的同学,应该首先能想到智能指针。 但是这是C语言,没有类和对象、构造析构这些技术,想要自动释放很难
    的头像 发表于 11-27 09:33 114次阅读

    英特尔推出全新MRDIMM高速内存

    英特尔携手行业伙伴,以创新方法实现标准DRAM模块内存带宽翻倍,该即插即用的解决方案可释放至强6性能核处理器潜力。
    的头像 发表于 11-25 17:03 409次阅读

    Linux内存泄露案例分析和内存管理分享

    作者:京东科技 李遵举 一、问题 近期我们运维同事接到线上LB(负载均衡)服务内存报警,运维同事反馈说LB集群有部分机器的内存使用率超过80%,有的甚至超过90%,而且内存使用率还再不停的增长。接到
    的头像 发表于 10-24 16:14 737次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内存</b>泄露案例分析和<b class='flag-5'>内存</b>管理分享

    Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种。环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的配置文件不同。Linux
    的头像 发表于 10-23 13:39 162次阅读

    Linux服务器性能查看方法

    Linux服务器性能查看是系统管理员和开发人员在日常工作中经常需要进行的任务,以确保系统稳定运行并优化资源使用。以下将详细介绍多种Linux服务器性能查看的方法,这些方法涵盖了CPU、
    的头像 发表于 09-02 11:15 1057次阅读

    buffers内存与cached内存的区别

    free 命令是Linux系统上查看内存使用状况最常用的工具,然而很少有人能说清楚 “buffers” 与 “cached” 之间的区别。
    的头像 发表于 07-29 14:17 507次阅读
    buffers<b class='flag-5'>内存</b>与cached<b class='flag-5'>内存</b>的区别

    ESP32CE MQTT断线重连后内存释放怎么解决?

    idf v5.2.1 开启mqtt 连接手机wifi 然后关闭数据流量和打开数据流量(模拟网络超时)esp_get_free_heap_size 获取到的内存越来越小 ,只有wifi重连才会释放
    发表于 07-19 07:12

    使用espconn_set_opt设置了TCP断开连接后立刻释放内存,好像不生效,怎么解决?

    在使用espconn_set_opt设置了TCP断开连接后立刻释放内存,好像不生效。我用的是以下的设置方法: err=espconn_set_opt(conn,ESPCONN_REUSEADDR
    发表于 07-10 07:21

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

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

    C语言内存泄漏问题原理

    内存泄漏问题只有在使用堆内存的时候才会出现,栈内存不存在内存泄漏问题,因为栈内存会自动分配和释放
    发表于 03-19 11:38 521次阅读
    C语言<b class='flag-5'>内存</b>泄漏问题原理

    Linux内核内存管理之内核非连续物理内存分配

    的主要优点是避免了外部碎片,而缺点是需要修改内核页表。显然,非连续内存区域的大小必须是4096的倍数。Linux使用非连续物理内存区的场景有几种:(1)为swap区分配数据结构;(2)为模块分配空间
    的头像 发表于 02-23 09:44 960次阅读
    <b class='flag-5'>Linux</b>内核<b class='flag-5'>内存</b>管理之内核非连续物理<b class='flag-5'>内存</b>分配

    Linux内存管理之CPU本地页帧缓存

    在前一节中,我们学习了buddy伙伴关系系统,它适用于申请连续的大块物理内存;而有些时候,经常需要申请和释放单个页帧。
    的头像 发表于 02-20 09:23 495次阅读

    Linux内核内存管理架构解析

    内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计等,而且对性能也有很高
    的头像 发表于 01-04 09:24 658次阅读
    <b class='flag-5'>Linux</b>内核<b class='flag-5'>内存</b>管理架构解析

    内存不够用的处理方法

    内存不够用的处理方法 内存不够用是许多计算机用户普遍面临的问题。当我们的计算机内存不足时,会导致系统运行缓慢,应用程序无法正常运行,甚至直接导致计算机崩溃。然而,幸运的是,我们有很多
    的头像 发表于 12-28 11:15 1061次阅读