news 2026/1/22 10:53:53

linux 内存管理详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux 内存管理详解

linux 内存管理详解

内存管理概览

  • 物理页管理系统通过buddy算法提供(4kb…1024 * 4kb,,这里默认页大小为4kb)物理页申请,使用,释放功能。
  • MMU提供虚拟内存转化为物理内存的功能,LTB(这里的缓存是存在cpu中的一级,二级,三级缓存中)里存放的是多级页表的缓存,如果缓存没有命令,则需要重新从内存中加载。TLB表中有进程id的标识,这样就能保证不同进程可以独立使用完成的虚拟空间
  • 进程内存管理 用来控制当前进程的内存使用分布,可以通过brk,sbrk系统调用函数来调整进程堆空间的大小,可以使用mmap,ummap来申请指定大小的内存空间供应用程序使用。
  • 虚拟内存管理是基于mmap,ummap又加了一层内存管理模块,用来专门为应用层提供频繁进行内存申请与释放的高性能内存管理模块。因为每次调用mmap,ummap实际上都会触发进程内存管理,mmu,物理页管理系统运行,比较耗时,不利于频繁进程内存申请与释放。故先通过mmap提前申请一大块内存,然后在慢慢的使用。

1 linux 申请与访问过程

1.1 内存申请与访问过程

1.2 大页内存使用

使用大页内存可以明显提高内存访问的性能,主要是通过大幅度降低大页列表长度以及提高TLB缓存命令率方式。

# 查看CPU是否支持大页$grep-i huge /proc/cpuinfo $greppdpe1gb /proc/cpuinfo# 检查1GB大页支持# 查看当前大页配置$cat/proc/meminfo|grep-i huge HugePages_Total:0# 已配置大页总数HugePages_Free:0# 空闲大页数HugePages_Rsvd:0# 预留大页数HugePages_Surp:0# 超额大页数Hugepagesize:2048kB# 大页大小# 创建挂载点$sudomkdir-p /mnt/huge $sudomkdir-p /mnt/huge_1GB# 挂载2MB大页文件系统$sudomount-t hugetlbfs -opagesize=2MB none /mnt/huge# 挂载1GB大页文件系统$sudomount-t hugetlbfs -opagesize=1GB none /mnt/huge_1GB# 永久挂载(/etc/fstab)none /mnt/huge hugetlbfspagesize=2MB00none /mnt/huge_1GB hugetlbfspagesize=1GB00# 验证挂载$mount|grephuge 匿名映射或文件映射使用大页内存# 匿名映射addr=mmap(NULL, SIZE, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,0);# 文件映射addr=mmap(NULL, SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd,0);

内存使用情况查看

查看当前系统页内存的使用情况
cat /proc/buddyinfo

后面11列分别表示页的个数(1,2,4, 8, 16,32,…1024)未使用的内存。

查看当前进程的堆空间使用情况
pmap {pid}

其中[anon]表示 堆空间的使用情况。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/21 19:29:16

探索112种风格组合:NotaGen镜像赋能古典音乐智能生成

探索112种风格组合:NotaGen镜像赋能古典音乐智能生成 1. 引言:AI驱动的古典音乐创作新范式 在人工智能技术不断渗透艺术创作领域的今天,音乐生成正从规则驱动迈向语义理解的新阶段。传统算法作曲受限于预设规则和有限模式,难以捕…

作者头像 李华
网站建设 2026/1/19 13:17:01

百度PaddleOCR-VL登顶全球第一|0.9B小模型实现文档解析SOTA

百度PaddleOCR-VL登顶全球第一|0.9B小模型实现文档解析SOTA 1. 引言:小模型如何实现SOTA性能? 在当前大模型参数动辄数十亿甚至上百亿的背景下,百度推出的PaddleOCR-VL以仅0.9B参数量,在权威文档解析评测基准OmniDoc…

作者头像 李华
网站建设 2026/1/20 3:21:11

从部署到应用:DeepSeek-OCR-WEBUI全流程实操指南

从部署到应用:DeepSeek-OCR-WEBUI全流程实操指南 1. 引言 1.1 OCR技术的现实挑战与需求演进 在数字化转型加速的背景下,光学字符识别(OCR)技术已成为企业自动化流程中的关键一环。传统OCR工具在面对复杂版式、低质量图像或手写…

作者头像 李华
网站建设 2026/1/19 22:53:55

Qwen2.5-7B-Instruct安全防护:对话内容过滤与审核机制

Qwen2.5-7B-Instruct安全防护:对话内容过滤与审核机制 1. 引言 1.1 技术背景 随着大语言模型(LLM)在企业服务、智能客服、内容生成等场景中的广泛应用,模型输出的安全性问题日益凸显。Qwen2.5-7B-Instruct作为通义千问系列中经…

作者头像 李华
网站建设 2026/1/20 16:01:39

从0开始学OpenCode:用Qwen3-4B模型轻松实现代码重构

从0开始学OpenCode:用Qwen3-4B模型轻松实现代码重构 1. 引言:为什么你需要一个终端原生的AI编程助手? 在现代软件开发中,开发者越来越依赖AI辅助工具来提升编码效率。然而,大多数AI编程助手都聚焦于IDE插件或Web界面…

作者头像 李华
网站建设 2026/1/21 9:34:08

Hunyuan 1.8B模型如何压缩?GGUF-Q4_K_M量化部署教程

Hunyuan 1.8B模型如何压缩?GGUF-Q4_K_M量化部署教程 1. 引言:轻量级多语翻译模型的落地挑战 随着大模型在自然语言处理领域的广泛应用,如何将高性能模型高效部署到资源受限的终端设备上,成为工程实践中的关键问题。特别是在移动…

作者头像 李华