当前位置: 首页 > article >正文

深入探索Linux内存管理:初学者指南

计算机的核心部分是 CPURAM 是 CPU 的前端门户进入 CPU 的所有内容都将通过 RAM。例如如果有一个正在加载的进程则该进程将首先加载到 RAM 中CPU 将从 RAM 获取进程数据。但为了使其更快CPU 具有一级、二级、三级缓存。这些缓存就像 RAM一样但是它集成在 CPU 上并且CPU 上的缓存量非常小因为它非常昂贵而且对所有指令也不是很有用。因此进程信息是从 RAM 复制到 CPUCPU 构建其缓存。缓存在 Linux 上的内存管理中也起着重要作用。如果用户从硬盘请求信息则将其复制到 RAM并从 RAM 为用户提供服务。当信息从硬盘复制时它被放置在所谓的页面缓存中。因此页面缓存存储最近请求的数据以便在再次需要相同的数据时使其更快。如果用户开始修改数据它也会进入RAM从RAM到硬盘但这只有在数据在RAM中停留足够长的时间时才会发生。数据不会立即从RAM写入硬盘但为了优化对硬盘的写入Linux采用了脏缓存的概念。它尝试缓冲尽可能多的数据以创建有效的写入请求。因此计算机上发生的一切都通过RAM。所以在 Linux 计算机上使用 RAM 对于 Linux 操作系统的良好运行至关重要。接下来讨论 Linux 内存管理的各个部分并了解与此流程相关的不同术语。二、了解虚拟内存在分析 Linux 内存使用情况时应该了解 Linux 如何使用虚拟内存和驻留内存。Linux 上的虚拟内存从字面上理解它是可以引用 Linux 内核的不存在的内存量。查看总物理内存代码语言Bash自动换行AI代码解释$ grep MemTotal /proc/meminfo MemTotal: 7023012 kB查看虚拟内存代码语言Bash自动换行AI代码解释$ grep VmallocTotal /proc/meminfo VmallocTotal: 34359738367 kB可以看到有32TB的虚拟内存。如果在 Linux 中当一个进程加载时这个进程需要内存指针而这些内存指针实际上不必引用实际的物理 RAM这就是使用虚拟内存的原因。Linux 内核使用虚拟内存来允许程序进行内存预留。进行此保留后其他应用程序无法保留相同的内存。进行预留是设置指针的问题仅此而已。这并不意味着内存预留实际上也会被使用。当程序必须使用它保留的内存时它将发出系统调用即内存实际上将被分配。三、什么是内存过度分配和 OOM在top命令中可以看到virt列和res列。VIRT用于虚拟内存。这是进程当前分配的千字节数。RES是Resident这就是真正使用的内存。展开代码语言Bash自动换行AI代码解释top - 15:03:09 up 4:49, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 33 total, 1 running, 32 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.4 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 6858.4 total, 5317.5 free, 530.4 used, 1010.5 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 6082.8 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 1 root 20 0 19512 12496 8292 S 0.0 0.2 0:01.09 systemd 2 root 20 0 2280 1300 1188 S 0.0 0.0 0:00.00 init-systemd(Ub 7 root 20 0 2280 4 0 S 0.0 0.0 0:00.00 init 36 root 19 -1 47736 15292 14280 S 0.0 0.2 0:00.15 systemd-journal 56 root 20 0 21964 5916 4552 S 0.0 0.1 0:00.16 systemd-udevd 74 root 20 0 4492 172 20 S 0.0 0.0 0:00.00 snapfuse 75 root 20 0 4624 176 24 S 0.0 0.0 0:00.00 snapfuse 76 root 20 0 4848 1808 1340 S 0.0 0.0 0:00.76 snapfuse 77 root 20 0 4728 1744 1240 S 0.0 0.0 0:01.96 snapfuse 80 root 20 0 4972 1748 1240 S 0.0 0.0 0:01.19 snapfuse 87 systemd 20 0 25532 12636 8440 S 0.0 0.2 0:00.16 systemd-resolve 99 root 20 0 4304 2648 2404 S 0.0 0.0 0:00.02 cron 103 message 20 0 8584 4652 4120 S 0.0 0.1 0:00.28 dbus-daemon 130 root 20 0 30104 19232 10436 S 0.0 0.3 0:00.10 networkd-dispat 135 syslog 20 0 222400 5140 4312 S 0.0 0.1 0:00.02 rsyslogd 136 root 20 0 1984488 44964 18804 S 0.0 0.6 0:06.75 snapd 137 root 20 0 15324 7344 6400 S 0.0 0.1 0:00.19 systemd-logind 194 root 20 0 4780 3372 3132 S 0.0 0.0 0:00.08 subiquity-serve 201 root 20 0 3236 1064 980 S 0.0 0.0 0:00.00 agetty 213 root 20 0 3192 1088 1004 S 0.0 0.0 0:00.00 agetty 214 root 20 0 107216 21880 13256 S 0.0 0.3 0:00.05 unattended-upgr 310 root 20 0 721880 80592 21184 S 0.0 1.1 0:16.32 python3.10 343 root 20 0 2288 112 0 S 0.0 0.0 0:00.00 SessionLeader 344 root 20 0 2304 116 0 S 0.0 0.0 0:00.00 Relay(345) 345 fly 20 0 6216 5124 3376 S 0.0 0.1 0:00.04 bash 346 root 20 0 7524 4916 3992 S 0.0 0.1 0:00.00 login 403 fly 20 0 16928 9336 7860 S 0.0 0.1 0:00.04 systemd 404 fly 20 0 168756 3376 16 S 0.0 0.0 0:00.00 (sd-pam) 409 fly 20 0 6120 4900 3316 S 0.0 0.1 0:00.01 bash 421 root 20 0 44208 37496 10048 S 0.0 0.5 0:24.72 python3 609 root 20 0 293000 20340 17432 S 0.0 0.3 0:00.18 packagekitd 613 root 20 0 234492 6680 6048 S 0.0 0.1 0:00.06 polkitd 4847 fly 20 0 7788 3648 3044 R 0.0 0.1 0:00.00 top可以看到Linux系统为进程分配了大量的内存如果将所有这些VIRT内存相加会发现远远超过该系统中可用的物理 RAM 的总和。这就是所说的内存过度分配。

相关文章:

深入探索Linux内存管理:初学者指南

计算机的核心部分是 CPU,RAM 是 CPU 的前端门户,进入 CPU 的所有内容都将通过 RAM。例如,如果有一个正在加载的进程,则该进程将首先加载到 RAM 中,CPU 将从 RAM 获取进程数据。但为了使其更快,CPU 具有一级…...

2026.3.15:bochs2.6.11(带debug)虚拟机安装和使用教程

bochs2.6.11(带debug)虚拟机安装教程 bochs 安装bochs...

分析常见占用空间的文件类型:系统临时文件

理解C盘空间占用原因 分析常见占用空间的文件类型:系统临时文件、软件缓存、日志文件、休眠文件等。区分必要系统文件与可清理内容,避免误删关键数据。 使用Windows内置工具清理 介绍磁盘清理工具的使用方法:右键C盘属性→磁盘清理→勾选临时…...

上位机知识篇---显示框卡顿原因分析与分辨率优化方案

一、显示框卡顿的根本原因分析1.1 计算资源瓶颈1.2 详细原因分解瓶颈类型具体原因影响程度优化难度计算密集型YOLOv8模型推理需要大量矩阵运算★★★★★★★★☆☆内存密集型多尺度特征图占用大量显存★★★★☆★★☆☆☆数据传输CPU-GPU间频繁数据拷贝★★★☆☆★★★☆☆图…...

嵌入式知识篇---IMU(惯性测量单元)

一、IMU是什么?(核心定义) IMU 是一个电子装置,它通过测量物体在三维空间中的角速度和加速度,来感知物体自身的运动状态和姿态。可以把它想象成“身体里的前庭系统”——即使闭着眼睛,你也能感觉到自己在转…...

太阳能板清洁机器人3D图纸 STEP格式

太阳能板清洁机器人的3D图纸(STEP格式)是光伏设备维护领域的重要学习资料,其核心作用在于为清洁系统的设计、优化与调试提供标准化模型支持。STEP格式作为国际通用的三维数据交换标准,能够完整保留机器人各部件的几何特征、装配关…...

2025年爬取上市公司高管、董事和监事简历、持股情况、任职情况变动数据(历年)

上市公司的高管数据是公司治理、金融、会计、管理等领域学术研究的核心基础数据,具有极高的研究价值。其在学术论文中的主要研究方向包括:公司治理与内部控制研究、企业战略与绩效研究、资本市场反应与信息传递研究、企业社会责任与可持续发展研究等。 …...

SourceTree 交互式变基(rebase) 合并压缩提交

目录零. 前置条件0.1 💥超级注意事项💥0.2 开启强制推送一. 代码已提交,未推送,交互式变基1.1 通过SourceTree操作1.2 通过Git命令行操作1.2.1 进入命令行终端,指定交互变基版本1.2.2 指定需要处理的提交1.2.3 指定提交…...

2000-2025年区县级数字治理DID

“数字治理指标”是一个基于准自然实验的多期双重差分虚拟变量,旨在精准识别政府数字化转型的政策冲击效应。本数据集以2016年国务院发布的《关于加快推进“互联网政务服务”工作的指导意见》为政策依据,将首批80个“互联网政务服务”试点城市作为处理组…...

Agent的核心技能:工具调用——让AI从“纸上谈兵”到“动手实践”

最近在跟同行交流时,经常被问到一个问题:现在的AI Agent(智能体)到底比传统的聊天机器人强在哪?为什么大家都说Agent是AI的未来?答案其实很简单:Agent学会了使用工具。就像人类从学会使用石头、…...

2059年的地球,我用Python预言给你看!附完整实验结果和可视化界面详解

引言:当代码遇见地球1850年,工业革命的烟囱第一次在英国上空冒起黑烟。那时的人们不会想到,这些烟雾将在地球上空累积成改变气候的“被子”。2026年3月15日,凌晨2点23分,我盯着电脑屏幕上的模拟结果,久久说…...

密码学中的 GPU 加速 AES 算法探索

X00139-密码学利用gpu加速aes算法 源码文件: 测试gpu: test_your_gpu.cu 编译后运行即可 测试计时函数:test_time.cu 编译后运行时需要输入要测试的函数(数字1-5,具体见源码) 生成测试用例:generate_input.…...

OpenClaw“小龙虾”被部分院校禁用,开源AI项目在组织内落地到底难在哪?

先说结论OpenClaw的轻量自托管特性虽吸引个人开发者,但在组织环境中易引发未经审计的数据流动和API暴露风险。院校禁令的核心并非否定AI价值,而是缺乏可控的部署框架和明确的责任边界,导致安全管控失效。个人开发者若想在企业或团队推广类似工…...

ECU CCP协议上位机测试与标定:C#源码的奇妙之旅

ECU ccp协议上位机测试与标定源码,C#源码上位机ECU标定与测量程序。 - ASAM MCD -1MC的 ccp 标定与测量上位机软件,短上传和DAQ功能,支持一维二维等测量和标定,显示控件丰富,具有仪表盘,进度条,…...

【超全】OpenClaw(Clawdbot)小白7分钟云上搭建及使用喂奶级教程

【超全】OpenClaw(Clawdbot)小白7分钟云上搭建及使用喂奶级教程。OpenClaw(前身为Clawdbot/Moltbot)作为开源、本地优先的AI助理框架,凭借724小时在线响应、多任务自动化执行、跨平台协同等核心能力,成为个…...

告别异步等待!UniApp uni.getSystemInfoSync:即时获取设备信息的效率利器

还在为UniApp中设备信息获取的异步回调烦恼?uni.getSystemInfoSync为你带来同步即时解决方案!本文揭示其如何简化初始化流程、优化条件判断,并提供高效的错误处理与缓存策略,让你的跨端开发更加顺畅,快速响应用户设备需…...

DeepSeek App登顶应用商店,背后是产品力的降维打击

在2025年初,全球应用商店的下载榜单迎来了一位“黑马”——DeepSeek App。这款由中国杭州深度求索人工智能基础技术研究有限公司开发的AI应用,不仅在中国区苹果App Store免费榜登顶,更在美国地区超越了ChatGPT、Meta旗下社交媒体平台Threads、…...

YOLO26改进90:全网首发--c3k2模块添加LFEM模块:

论文介绍 摘要 遥感目标检测(RSOD)在复杂视觉环境中面临严峻挑战。航空与卫星图像固有地存在多种局限性,包括低空间分辨率、传感器噪声、目标模糊、低光退化以及部分遮挡。这些退化因素共同削弱了检测模型的特征可区分性,导致三个关键问题:(1)降低对比度,阻碍前景-背景…...

pythonnodejs基于微信小程序的校园兼职报名系统

目录需求分析技术选型系统架构设计核心功能实现数据库设计开发与测试部署与运维代码示例(Node.jsMySQL)注意事项项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析 明确校…...

OpenClaw解决飞书 duplicate plugin id detected 问题

1.查看日志 飞书运行过程中产生警告: $ openclaw gateway --port 18789 --verbose Config warnings:\n- plugins.entries.feishu: plugin feishu: duplicate plugin id detected; later plugin may be overridden (/home/ubuntu/.openclaw/extensions/feishu/index.…...

EBSD数据转有限元inp格式文件:一场数据格式转换的奇妙之旅

EBSD数据转有限元inp格式文件在材料科学与工程的研究领域中,我们常常会面临将不同类型的数据转换为适合有限元分析的格式,以便更好地模拟材料的行为。今天就来聊聊如何将EBSD(电子背散射衍射)数据转换为有限元inp格式文件。 一、背…...

JAVA 八股

1.1JAVA基础面试1.2JAVA 集合面试1.2.1 HashMap 和 Hashtable:区别、联系与实战解析共同点:底层数据结构(核心):二者底层都基于「数组 链表」(JDK 1.8 后 HashMap 新增红黑树优化)实现哈希表。…...

排序算法通关攻略:比较排序篇(从青铜到王者)

📝 写在前面 排序算法是算法的"Hello World",但很多人学完就忘。今天我用最易懂的方式帮你把冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序这六大比较排序刻进脑子里。 阅读指南:每个算法都包含👇 生活…...

现在最好用的降论文AI率工具是哪个?2026最新9大降AI率工具实测测评!

现在最好用的降论文AI率工具是哪个?2026最新9大降AI率工具实测测评! 写论文的宝子们,是不是快被知网、Turnitin的AI率检测逼疯了?辛辛苦苦写的论文,一查全是“AI疑似”;用普通工具降重,结果AI率…...

分布式架构之CAP与数据库分片架构

CAP定理CAP的特点:CP:强一致性说明AP: 高可用总结: CAP 理论中的 C 在实践中是不可能完美实现的,在数据复制的过程中,节点N1 和节点 N2 的数据并不一致(强一致性)。即使无法做到强一致性&#x…...

本地搜索(@vuepress/plugin-slimsearch替换vuepress-plugin-search-pro)

要实现全局搜索标签(Tag),你需要使用 slimsearch 插件的 customFields 配置项。这个功能允许你将页面中的自定义数据(比如标签、分类、作者等)添加到搜索索引中。 {"vuepress/plugin-slimsearch": "2.0…...

OpenClaw革新制造业:打造工业4.0时代的智能工厂

OpenClaw革新制造业:打造工业4.0时代的智能工厂在制造业转型升级、工业4.0深入推进的背景下,如何实现生产智能化、管理数字化成为制造企业面临的核心课题。OpenClaw 作为领先的 AI 自动化平台,为制造业带来了全新的智能化解决方案。一、生产调…...

YOLO26改进93:全网首发--c3k2模块添加DBlock模块

论文介绍 夜间或暗光环境下的摄影通常因光线昏暗及长时间曝光的常见使用方式而面临噪点、光线不足和模糊等问题。尽管在此类条件下,去模糊与低光照图像增强(LLIE)具有相关性,但现有图像修复方法大多将这两项任务分开处理。 本文提出一种高效且鲁棒的多任务低光照图像修复神…...

JavaSE基础04-基本运算符

运算符详解运算符是Java语言中用于执行数据操作的符号。Java提供了丰富的运算符,按照功能可以分为以下几类:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、三元运算符等。理解每种运算符的用法、注意事项及优先级是编写正确表达式的基础。…...

AutoGen详解:专注多智能体协作,让AI Agent“会分工、能协同”

在AI智能体(Agent)技术向工业级落地迈进的过程中,单一智能体的能力边界逐渐显现——面对复杂的企业级任务(如多步骤数据分析、跨领域项目协作、全流程自动化办公),单个智能体往往难以兼顾“检索、推理、执行…...