Linux下内存释放问题相关知识续——手动释放内存的伪命题

Mac虚拟内存与SSD寿命:Swap文件真的需要关闭吗? 虚拟内存是现代操作系统的核心内存管理技术,它通过将物理内存与磁盘空间结合,为应用程序提供远大于实际RAM的地址空间。其工作原理是在物理内存不足时,将不活跃的数据页交换(Swap)到磁盘上的特定文件或分区中,以实现多任务并行和防止应用崩溃。这项技术的核心价值在于平衡性能与成本,让有限的内存资源支撑更复杂的工作负载。在macOS系统中,Swap机制会创建swapfile文件,这引发了用户对固态硬盘(SSD)写入寿命(TBW)的普遍担忧。实际上,对于绝大多数用户,由Swap产生的写入量在SSD总寿命中占比极小,盲 阅读详情

使用Linux会发现一个很奇怪的问题:使用一段时间后(特别是经过了文件的拷贝等操作),用top指令发现内存基本上被占用了,而且Linux不会释放,这个问题的确困扰了我们,我们就开始寻找手动释放内存的方法,的确也找到了,也就产生了我的上一篇博客。上网搜索也发现很多人存在着这个问题,但是经过对网上结果和我自己理解的综合分析得出了一个结论:Linux手动释放内存是一个彻彻底底的伪命题。

 

首先讲解一下top的每个选项的含义:

total:所有应用程序可用物理内存
free
:未被应用程序使用的内存

used:
已使用内存

total=free+used

shared:
被共享库所占用的共享内存

buffers:
用于文件缓冲的内存

cached
:内核缓冲虚拟内存

shared,buffers,cached
均包含在used中。

 

实际上内核结束一个程序后,它是会释放内存的,但是内核并没有立刻将这部分收集到free当中,而是存在在cached或者buffer当中,提高系统的io效率,cache和buffered的内存是由内核进行动态的配置管理,如果系统的free大小不够的时候,系统会自动释放cache buffer的内存给程序使用。(因此如果是看到used很多,来手动释放内存其实是不需要的)

 

也就是说Linux会尽可能多的使用内存来提升系统的速度和io效率,但是它有相应的机制来释放内存,其实我们可以简单的理解cache和buffer也是free的空间。

什么时候代表你的内存是不够的呢:就是used很多,但是cache和buffer占的比例很小,说明内存不够了。看到很多网友说看到used占了很多,free很少不爽,简单的心理:free的内存越多看着越快乐??是吗??那可以建议gnu让free的内存显示为cached和buffer的总和,相信网友肯定满意了。送各位一句话:Linux的内存是用来用的,windows的内存是用来看的。

构建本地模型路由系统:告别手动切换,提升AI工作流效率 大语言模型(LLM)应用已进入多模型协同阶段,用户不再满足于单一模型,而是追求任务驱动的最优响应——这催生了‘模型路由’这一关键工程实践。其核心原理是通过语义解析、动态权重决策、协议适配与执行熔断四层架构,实现输入意图到最佳模型的自动映射。技术价值在于显著降低隐性切换成本(实测年节省405小时)、保障结果稳定性、保护数据隐私并支持离线运行。典型应用场景包括法律条款提取、创意文案生成、代码调试与PDF结构化处理等高频知识工作。本文基于Phi-3-mini与Claude 3.5、GPT-4o等真实模型组合,提供 阅读详情

相关推荐

Hermes+Obsidian本地知识库:离线语义检索实战指南

本地知识库本质是将非结构化文档(如Markdown、PDF)转化为可被自然语言查询的向量索引系统。其核心原理依赖嵌入模型生成语义向量,并通过近似最近邻(ANN)算法实现高效召回。技术价值在于摆脱云端依赖、保障数据主权、适配强管控环境,尤其适合企业内网、车载测试、智能座舱等对隐私与稳定性要求极高的场景。Hermes Desktop提供量化LLM推理能力,Obsidian支撑知识结构化沉淀,二者通过Hermes Agent实现零侵入式协同——这正是当前Windows用户落地‘hermes agent安装’与‘o

weixin_34062469的博客 437

程序员工程化笔记系统:问题驱动的结构化知识沉淀

在软件工程实践中,‘技术笔记’常被误解为碎片化记录,实则应是可检索、可复用、可验证的认知资产。其核心原理在于以真实问题场景为原子单位,通过极简文本+语义化动宾标签+上下文快照实现高精度匹配与低认知负荷复用。该范式显著提升个体调试效率与团队经验传承质量,尤其适用于微服务治理、中间件故障排查等高频工程场景。相比Obsidian/Notion等通用工具,它规避了过度连接、模板冗余与协作绑架三大隐性成本,让知识真正服务于当下问题解决——正如Redis连接泄漏、Nginx 499错误等典型问题,均可在秒级定位并一键验

diaozhiwa5526的博客 360

Obsidian从零搭建:可验证、可回溯、可演进的知识库工具链

个人知识库不是开箱即用的软件,而是基于Markdown内核构建的可演进系统。其核心原理在于分离‘稳定内核’与‘可插拔扩展’:Obsidian原生支持双链、嵌入、Frontmatter等基础能力,构成不可降级的知识骨架;而Dataview、Templater等插件则作为可验证、可回溯的增强层,需通过三问验证(解决痛点?有原生替代?失效可降级?)方可引入。这种设计赋予知识库技术价值——抗版本升级、跨平台兼容、离线可用,并支撑技术文档管理、项目复盘、读书笔记等真实场景。当面对computer use插件不可用或h

weixin_30660027的博客 680

reboot重启linux能清理内存,Linux关机和重启shutdown、reboot命令

Linux关机和重启shutdown、reboot命令曾经有一个很有意思的段子,说一个程序员在自己的简历上写到:"熟练掌握 Linux 的开关机和重启",开机操作任何系统都不难,硬件肯定要给予一个开机的按钮,至于 Linux 的关机和重启,在没有桌面环境的 Linux 下还真需要记住命令才能实现。当然,真正的 Linux 服务器环境,几乎可以做到全年不关机不重启,除非机房断电了,一般情况下,Lin...

weixin_29584723的博客 1848

MSP430F5529定时器方波与ADC峰值测频实战

在嵌入式系统中,定时器通过计数与比较产生周期性方波,ADC负责将模拟电压转换为数字码值,二者配合可完成信号发生与参数测量。原理上,基于REFOCLK等稳定时钟对Timer_A分频计数,可设置半周期并翻转IO;ADC需在覆盖整数信号周期的窗口内重复采样并取最大值,才能避免单点采样相位随机导致的峰值漏检。技术价值在于把时基、采样窗口与中断服务解耦,提高测量稳定性和可复现性。应用场景包括MSP430单片机课程设计、低频方波发生、峰值检测和1秒门控测频等。围绕MSP430F5529平台,进一步讨论Timer_A四档

weixin_34192816的博客 396

STM32实战:增量式PID控制气体流量(附完整代码与调参技巧)

本文详细解析了如何在STM32平台上实现气体流量控制的增量式PID算法。内容涵盖从系统硬件架构选型、增量式PID算法原理与代码实现,到ADC采样滤波、PWM驱动配置等关键外设驱动,并提供了完整的参数整定技巧与工程调优实战指南,帮助开发者构建稳定可靠的气体流量控制系统。

rose2的博客 619

Linux 定时释放内存cache 定时清理缓存

一:创建脚本 [root@iZ23evimvf8Z /]# cd /usr/local [root@iZ23evimvf8Z local]# mkdir clearcache [root@iZ23evimvf8Z local]# cd clearcache [root@iZ23evimvf8Z clearcache]# touch clear-cache.sh [root@iZ23evimvf8Z clearcache]# vi clear-cache.sh 二:写入执行脚本 #!/

悟能的师兄的专栏 1万+

车载与安防项目实战:如何用RK3588搭配NVP6158C实现4路AHD摄像头BT1120接入与同步预览

本文详细解析了基于RK3588处理器与NVP6158C解码芯片实现4路AHD摄像头BT1120接入与同步预览的技术方案。针对车载环视和安防监控场景,重点探讨了硬件架构设计、BT1120接口配置、多路同步机制及Android HAL适配等核心问题,提供了从底层驱动到上层应用的完整实现路径,为相关领域的工程实践提供可靠参考。

weixin_30571465的博客 486

Linux关机命令

在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的。1、shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。  精确时间的格式是hh:mm,表示小时和分钟,时间段由

Liangsm_的博客 1141

STM32输入捕获功能,同时捕获8路波形。

STM32输入捕获功能,使用TIM2和TIM3同时捕获8路波形。 工作上的一个需求,要采集两组控制步进电机的信号。就是采集8个通道的方波,测量频率和计脉冲个数。看起来简简单单的东西,磕磕碰碰搞了两天,走了一些弯路,这里写出来记录一下。顺便理解一下输入捕获个多种用法。 1. 硬件设计 首先看一下用到那些IO口。在STM32手册里找这样TIMx_CHx的就是输入捕获的口了。 这里用了TIM2的4个口和TIM3的4个口。 定义 端口 TIM2_CH1 PA0 TIM2_CH2 PA1 TI

qq_36353009的博客 5123

深入浅出CenterFusion

结合论文和代码理解CenterFusion

Untitled的专栏 5104

内核手动释放内存方法

转载自:http://www.cnblogs.com/waterdragon/archive/2013/03/01/2938289.html Linux释放内存的命令: sync echo 1 > /proc/sys/vm/drop_caches drop_caches的值可以是0-3之间的数字,代表不同的含义: 0:不释放(系统默认值) 1:释放页缓存 2:释放

kjy1228436147的专栏 3201

LEfSe分析避坑指南:如何解决R语言中的常见错误与优化结果可视化

本文提供了R语言中进行LEfSe(线性判别分析)微生物组差异分析的全流程避坑指南。详细解析了从数据格式准备、参数调优(如显著性水平与LDA阈值)、结果可靠性验证到使用ggplot2进行高级可视化的实战技巧,帮助用户规避常见错误,获得更稳健、美观的分析结果。

weixin_29098391的博客 361

Linux 机器重启reboot命令

reboot 用来重启Linux系统和Windows系统中的restart一样。但是机器重启必须要root用户才有权限。 命令语法: /sbin/reboot [-n] [-w] [-d] [-f] [-i] 或 reboot [-n] [-w] [-d] [-f] [-i] 命令参数: 参数 长参数 描叙

lyc417356935的专栏 1万+

深入浅出:使用Python爬取链家二手房数据

在数据驱动的时代,房地产数据作为社会经济的重要指标,一直是数据分析师、投资者和研究人员关注的焦点。链家作为国内领先的房产中介平台,其二手房数据具有较高的真实性和时效性。然而,官方API的访问限制和数据获取的门槛,让很多初学者望而却步。本文将带你从零开始,使用Python编写一个符合robots.txt规范的链家二手房爬虫,获取标题、户型、价格等信息。文章不仅会提供完整代码,还会深入讲解反爬策略、请求头伪装、数据解析、异常处理等实战技术。目录前言:为什么要写这篇博客?一、爬虫前的准备:法律与道德。

2201_76125261的博客 90

2026华为OD机试(JavaScript)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,JavaScript实现。

MISAYAONE的博客 8万+

内存云- 一个伪命题!

前几天,在csdn上看到了内存云的文章。初看,感觉挺新颖的,再仔细看,发现这是个噱头。文中,作者提出在内存中实现文件系统,以此实现HDFS的分布式文件系统。其实,在DOS时代已经有了ramdisk这个命令,即是把内存虚拟成硬盘。以下引用自内存文件系统使用及示例 LINUX下我所

笑看云飞处 - 专注于:互联网 电子商务 大数据 欢迎来访! 2063

Microsemi Libero系列教程(四)——PLL的使用

文章目录PLL是什么Libero中PLL的使用官方文档 系列教程:Microsemi Libero系列教程 PLL是什么 PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时钟信号,使高频器件正常工作,如内存的存取资料等。PLL用于振荡器中的反馈技术。 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率...

whik1194的博客 7212

从‘内存清理大师’到Swap:用htop数据纠正你对Linux内存管理的5个常见误解

本文通过htop工具解析Linux内存管理的5个常见误解,包括内存占用高不等于性能差、Swap的合理使用、缓存清理的误区等。帮助开发者正确理解Linux内存分配哲学,避免盲目优化,提升系统性能。

weixin_30475039的博客 216

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

请使劲回答一个关于UNIX/Linux自动扩展stack的问题

有本事就出来,没本事就当鳖!如果让我回答关于进程栈,线程栈的问题,只要问题不笼统,只要问题明确,我会一五一十地回答,正确率上九成,然而,可悲的是,问题往往他妈的都不是那么明确,因此,游戏到此结束!!艹。但是如果给我一个反问的机会,我会问提问者反问下面一个问题,记住,使出你拉屎的劲来回答:UNIX/Linux的stack在大多数平台是向下扩展的(注意,我已经告诉他事实了,我并没有问...是如何扩展的

TCP/IP 6306

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【干货合集】都说“精通C++”是个伪命题,那么本文只求让你深入了解一下这门编程语言...

云栖君导读:正如C++的创造者Bjarne Stroustrup曾经说过的“我特别讨厌语言的设计者把自己的喜好强加给用户”,所以C++为了不限制你的想法,于是也就变成了现...

云栖社区 434

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【干货合集】都说“精通C++”是个伪命题,那么本文只求让你深入了解一下这门编程语言

云栖君导读:正如C++的创造者Bjarne Stroustrup曾经说过的“我特别讨厌语言的设计者把自己的喜好强加给用户”,所以C++为了不限制你的想法,于是也就变成了现在这个样子,本文精选了云栖社区上关于C++的相关学习资料,可不敢说帮大家“精通C++”,只求带你深入了解一下C++这门编程语言。有大牛谈到“永远不要相信有人了解C++”并且总结了C++学习的曲线如下,这个曲线也可以说是非常生动了。

云栖社区 423

静态博客技术基建:Hugo+PaperMod打造可审计知识库

静态博客是一种将内容、样式与逻辑彻底解耦的网站构建范式,其核心原理在于通过预生成HTML提升安全性、性能与长期可维护性。相比WordPress等CMS,静态方案规避了运行时漏洞、平台锁定与格式漂移风险,具备天然的抗审查性、零依赖部署能力及Git原生版本控制优势。在系统编程、基础设施文档、算法笔记等强调代码准确性与知识复用的场景中,Hugo因其编译速度、Go模板简洁性及对LaTeX/mermaid/高亮代码的原生支持,成为工程师构建个人知识基建的首选引擎。本文详解如何基于Hugo与PaperMod主题,落地一

lanmh的专栏 389

请使劲回答一个关于UNIX/Linux自己主动扩展stack的问题

有本事就出来,没本事就当鳖!假设让我回答关于进程栈,线程栈的问题,仅仅要问题不笼统,仅仅要问题明白。我会一五一十地回答,正确率上九成,然而,可悲的是,问题往往他妈的都不是非常明白,因此,游戏到此结束。!艹。可是假设给我一个问的机会。我会问以下一个问题,记住。使出你拉屎的劲来回答(该问题足够糙。不必太当回事,重要的东西在以下-):UNIX/Linux的stack在大多数平台是向下扩展的...

weixin_30849403的博客 98

Ubuntu 20.04 手动部署 LEMP 栈:Nginx+PHP-FPM+MySQL 8.0 实战指南

LEMP 栈是 Linux Web 服务的核心技术组合,指在 Linux 系统上集成 Nginx(Web 服务器)、MySQL(关系型数据库)和 PHP(服务端脚本语言)构成的生产级运行环境。其原理基于进程间协作:Nginx 通过 FastCGI 协议将动态请求转发至 PHP-FPM,后者调用 MySQLi 扩展与 MySQL 8.0 建立本地 socket 或 TCP 连接,完成数据读写。该架构具备轻量、高并发、低资源占用的技术价值,广泛应用于 WordPress、Laravel、SaaS 后台等 PHP

weixin_34082854的博客 456

Windows、Linux下安装Redis图文教程

Windows、Linux下安装redis超详细图文教程

生命的意义在于创造和毁灭 7345
上一篇: Linux下内存释放问题相关知识
下一篇: Linux shell脚本编写基础
myleeming
博客等级 码龄18年 75粉丝 47原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值