2026/6/20 10:04:14
网站建设
项目流程
如何建立自己的微网站,中陕核建设集团网站,域名与网站建设,江西岳顶建设工程有限公司网站linux 内存管理详解
内存管理概览物理页管理系统通过buddy算法提供#xff08;4kb…1024 * 4kb#xff0c;#xff0c;这里默认页大小为4kb#xff09;物理页申请#xff0c;使用#xff0c;释放功能。MMU提供虚拟内存转化为物理内存的功能#xff0c;LTB#xff08;这…linux 内存管理详解内存管理概览物理页管理系统通过buddy算法提供4kb…1024 * 4kb这里默认页大小为4kb物理页申请使用释放功能。MMU提供虚拟内存转化为物理内存的功能LTB这里的缓存是存在cpu中的一级二级三级缓存中里存放的是多级页表的缓存如果缓存没有命令则需要重新从内存中加载。TLB表中有进程id的标识这样就能保证不同进程可以独立使用完成的虚拟空间进程内存管理 用来控制当前进程的内存使用分布,可以通过brksbrk系统调用函数来调整进程堆空间的大小可以使用mmap,ummap来申请指定大小的内存空间供应用程序使用。虚拟内存管理是基于mmapummap又加了一层内存管理模块用来专门为应用层提供频繁进行内存申请与释放的高性能内存管理模块。因为每次调用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 -opagesize2MB none /mnt/huge# 挂载1GB大页文件系统$sudomount-t hugetlbfs -opagesize1GB none /mnt/huge_1GB# 永久挂载/etc/fstabnone /mnt/huge hugetlbfspagesize2MB00none /mnt/huge_1GB hugetlbfspagesize1GB00# 验证挂载$mount|grephuge 匿名映射或文件映射使用大页内存# 匿名映射addrmmap(NULL, SIZE, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,0);# 文件映射addrmmap(NULL, SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd,0);内存使用情况查看查看当前系统页内存的使用情况cat /proc/buddyinfo后面11列分别表示页的个数124 8 1632…1024未使用的内存。查看当前进程的堆空间使用情况pmap {pid}其中[anon]表示 堆空间的使用情况。