首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

物理内存管理

前言: 书接上回《内存映射技术分析》,继续来分析一下linux的物理内存管理。 分析: 1,物理内存 PC上的内存条,或者手机上的内存芯片,物理上实实在在的内存,就是物理内存。...Orz 2,e820 使用dmesg查看内核log: 从时间上也看得出来,在kernel启动的早期阶段,会得到物理内存的RAM map。 ?...所以kernel把高于896M的物理内存标记为High Memory Zone,访问High Memory Zone的内存就不能使用固定映射了,需要动态映射。...而且在服务器上也一般不会使用到。 9,slab 内核中分配内存的最小单位是page。但是,很多数据结构只有几十byte。第一是浪费空间,第二是分配/回收page的代价太高。于是就有了slab。...比如说互联网服务器上,它的skb肯定很多,小文件很多的机器上,它的inode占用肯定要多一些。 10,sparse mem 物理内存上,如果存在巨大的hole,可以考虑使用sparse mem。

2.6K70
您找到你想要的搜索结果了吗?
是的
没有找到

物理内存与虚拟内存

物理内存就是你的机器本身内存了(如内存条的大小)。物理内存就是CPU的地址线可以直接进行寻址的内存空间大小。...当物理内存用完后,虚拟内存管理器选择最近没有用过的,低优先级的内存部分写到交换文件(页面文件)上,并将需要访问内存的程序的内容从页面文件中换入到物理内存。...所以,虚拟内存是进程运行时所有内存空间的总和,并且可能有一部分不在物理内存中,而物理内存就是我们平时所了解的内存条。有的地方呢,也叫这个虚拟内存内存交换区。...的内存管理单元)组成一个物理上真正存在的地址,接着就是访问物理内存中的数据了。...总结起来说,虚拟内存地址的大小是与地址总线位数相关,物理内存地址的大小跟物理内存条的容量相关。

2.1K31

【Linux 内核 内存管理】物理内存组织结构 ⑥ ( 物理页 page 简介 | 物理页 page 与 MMU 内存管理单元 | 内存节点 pglist_data 与 物理页 page 联系 )

文章目录 一、物理页 page 简介 1、物理页 page 引入 2、物理页 page 与 MMU 内存管理单元 3、物理页 page 结构体 4、Linux 内核源码中的 page 结构体 二、内存节点...pglist_data 与 物理页 page 联系 内存管理系统 3 级结构 : ① 内存节点 Node , ② 内存区域 Zone , ③ 物理页 Page , Linux 内核中 , 使用 上述...3 级结构 描述 和 管理 " 物理内存 " ; 一、物理页 page 简介 ---- 1、物理页 page 引入 " 内存节点 " node 是内存管理的 最顶层结构 , " 内存节点 " 再向下划分..., 就是 " 内存区域 " zone , " 内存区域 " 再向下划分 , 就是 " 物理页 " page ; 2、物理页 page 与 MMU 内存管理单元 在 Linux 内核中 , MMU 内存管理单元...结构体 " 物理页 " page 是 Linux 内核 " 内存管理 " 中的 最小单位 , 物理页 中的 " 物理地址 " 是连续的 , 每个 " 物理页 " 使用 struct page 结构体

6.8K10

物理服务器是什么?物理服务器有哪些优势?

物理服务器是什么?物理服务器有哪些优势?...目前大型企业在选择公司服务器的时候往往会选择物理服务器,因为物理服务器租用费用相对较高,中小型企业使用不划算,而且也会造成资源浪费,但是最近我们接收到从其他服务器商那里转来的客户中,我们发现一些问题,他们租用服务器的时候费用比较低...一、物理服务器租用对运行需求高吗? 大多数低成本物理服务器租用提供商使用的是老旧硬件,或者难以保障长时间稳定运行的桌面级服务器组件。...对内存而言,您需要确保使用ECC RAM,它可以自动检测并自动纠正大部分内部数据损坏。对硬盘而言,无论HDD还是SSD,建议选择国际品牌硬件商提供的企业级硬盘。...另外,如果您的客户群主要集中在国内的强烈建议选择国内服务器,就不说其他快与慢,国内的任意一个线路哪怕是电信与网通对接,速度都好过海外线路的。 三、服务器租用服务支持怎么样?

4.3K10

物理内存管理之zone详解

上一次说过了物理内存由node,zone,page三级结构来描述。而node是根据当前的系统是NUMA还是UMA系统。假设我们当前是UMA系统架构,则只有一个node。 ?...WMARK_LOW:低水位,代表内存已经开始吃紧,需要启动回收页内核线性kswapped去回收内存 WMARK_HIGH:高水位,代表内存还是足够的。...,当系统内存出现不足的时候,系统就会使用这些保留的内存来做一些操作,比如使用保留的内存进程用来可以释放更多的内存 free_area:用于维护空闲的页,其中数组的下标对应页的order数。...通过pglist_data结构就可以完全的描述一个内存的layout了。...,就会开启内核swapd来回收内存 每次申请的page都会挂到lru链表中,当出现内存不足的时候,就会根据lru算法找出那些page最近很少使用,然后释放

3.4K10

减少Redis内存消耗的优化措施

以下是一些可以减少Redis内存消耗的优化措施:合理配置maxmemory参数:在Redis配置文件中,可以通过设置maxmemory参数来限制Redis使用的最大内存大小。...对于存储结构比较大的数据,可以考虑使用压缩算法进行存储,在一定程度上减少内存消耗。使用持久化方式:Redis支持将数据持久化到磁盘中,以便在重启后进行恢复。...通过将数据持久化到磁盘,可以释放一部分内存减少内存压力。使用Redis集群:当单个Redis实例的内存达到上限时,可以使用Redis集群来扩展内存容量。...合理使用数据过期功能,可以及时释放不再使用的数据,减少内存占用。键空间通知机制:Redis提供了键空间通知机制,可以订阅特定键的过期或淘汰事件。...通过监听这些事件,可以及时释放相关数据的内存减少不必要的内存占用。这些优化措施可以帮助减少Redis的内存消耗,并提高其性能和可靠性。

43471

kmalloc分配物理内存与高端内存映射--Linux内存管理(十八)

在x86_32体系结构总, 高于896MB的所有物理内存的范围大都是高端内存, 它并不会永久地或自动映射到内核地址空间, 尽管X86处理器能够寻址物理RAM的范围达到4GB(启用PAE可以寻址64GB)...虚拟内存中连续、但物理内存中不连续的内存区,可以在vmalloc区域分配. 该机制通常用于用户过程, 内核自身会试图尽力避免非连续的物理地址。...它与通过固定公式与物理内存关联的直接映射页相反,虚拟固定映射地址与物理内存位置之间的关联可以自行定义,关联建立后内核总是会注意到的. ?...直接映射区 线性空间中从3G开始最大896M的区间, 为直接内存映射区,该区域的线性地址和物理地址存在线性转换关系:线性地址=3G+物理地址。...动态内存映射区 该区域由内核函数vmalloc来分配, 特点是 : 线性空间连续, 但是对应的物理空间不一定连续. vmalloc分配的线性地址所对应的物理页可能处于低端内存, 也可能处于高端内存.

6.4K21

如何查看linux系统中空闲内存物理内存使用剩余内存

查看linux系统中空闲内存/物理内存使用/剩余内存 查看系统内存有很多方法,但主要的是用top命令和free 命令 当执行top命令看到结果,要怎么看呢?...一些简单的计算方法:  物理已用内存 = 实际已用内存 - 缓冲 - 缓存 = 6811M - 350M - 5114M 物理空闲内存 = 总物理内存 - 实际已用内存 + 缓冲 + 缓存  应用程序可用空闲内存...内容如下: Mem: 191272k total  物理内存总量   173656k used  使用的物理内存总量   17616k free  空闲内存总量   22052k buffers  ...RES=CODE+DATA   r  CODE  可执行代码占用的物理 内存大小,单位kb   s  DATA  可执行代码以外的部分(数据 段+栈)占用的物理 内存大小,单位kb   t  SHR...proc/cpuinfo | grep "cpu cores" | uniq 查看CPU型号 # cat /proc/cpuinfo | grep 'model name' |uniq 那么,该服务器

20K41

什么是虚拟内存服务器虚拟内存怎么设置最好?

一、什么是虚拟内存?虚拟内存有什么用处?...操作系统中所运行所有的程序全部都是经过内存提交给CPU然后才执行的,不过若是执行的程序占用内存很多或很大,则会导致内存消耗殆尽为解决内在消耗殆尽的问题,Windows操作系统运用了虚拟内存技术,简单的说就是把一部分硬盘空间充当内存使用...,虽然硬盘在读写的速度上远远不及内存条的速度,但是可以有效的避免内存消耗殆尽而引起的系统崩溃的问题而往往在运行大型或者一些或者吃内存的软件程序的时候就有可能会出现虚拟内存不足的情况二、怎么设置服务器虚拟内存...:2048  这个2048是按照系统内存来写的,比如内存2G也就是2048MB的内存 ,虚拟内存最好是和系统内存大小是一样的,最大值建议是初始大小的1.5倍到2倍的样子6、设置好后确定,设置好后重启服务器就会生效了注意...:为了保证网站正常运行,服务器虚拟内存不要使用默认配置,需要设置一下,一般设置为2G-10G以上就是关于虚拟内存设置分享感谢您的阅读,服务器大本营助您成为更专业的服务器管理员!

26610

内存管理两部曲之物理内存管理

可以从物理和逻辑两方面来考虑扩充内存容量,物理扩容没啥技术含量,需要我们研究的自然是如何从逻辑上扩充内存容量。 所谓逻辑扩充,就是说实际上物理内存的容量没有发生改变,但是它能装的东西却变多了。...前两种逻辑扩充技术已经成为历史,虚拟内存技术是目前的主流。所以也有很多人把内存管理这块的内容直接区分为物理内存管理和虚拟内存管理,一目了然。...内存管理整部分总览如上,而本文,内存管理第一部曲,讲的仅是物理内存管理这块。 连续分配管理方式 其实在早期的操作系统中,采用的都是连续内存空间分配的策略。...那么问题又随之而来了,如果 TLB 填满了怎么办? 当 TLB 填满后又要登记新页时,就会按照一定的淘汰策略淘汰掉快表中的一个页。...另外,多级页表增加了访存次数,因此外层页表的页表项应该尽可能保持在 TLB 中,以减少访存开销。

86210

如何减少Figma内存使用量?减少卡顿现象发生?

今天我们来分享一些如何减少Figma内存使用,加速Figma使用体验的技巧。避免这四个常见错误,你的工作压力会小很多。...不仅浏览所有页面变的不方便,你电脑的内存使用量也会快速增长。 解决方法是什么呢? 此时,您可能会考虑将主文件拆分为较小的文件。原则就是为外部组件库和最终设计稿提供单独的文件。...02.隐藏层 变体(Variants) 尽管您看不到它们,但隐藏层对您的文件内存使用有很大贡献。有时它们用于在组件的不同状态之间切换。如果是这种情况,我们可以尝试使用变体。...占位符允许您创建实例的版本而无需制作其他组件变体 原子设计 组合基本构建块以创建复合结构的想法也有助于减少变体数量和组件大小。 在这里有一个简单的图像示例,当您将鼠标悬停在信息图标上时会显示工具提示。...简化的复杂组件 04.大资产 使用大量高分辨率照片也会增加您的内存使用量。您可能还会遇到图片加载缓慢甚至完全从画布上消失的情况。发生这种情况时,您可能应该进行一些清理并开始删除冗余元素。

2.7K10

示例展示虚拟内存物理内存的分配

通过前两篇文章(系统调用mmap的内核实现分析,Linux下Page Fault的处理流程)我们可以知道,虚拟内存是在我们向操作系统申请内存(比如malloc或mmap)时分配的,而物理内存是在我们使用...不管是虚拟内存的分配还是物理内存的分配,都是以page为单位的,page的默认大小为4096。 之前的两篇文章理论和代码部分比较多,所以,现在我们用示例的形式,展示下虚拟内存物理内存的分配。...该区域的虚拟内存大小是8k,因为我们在调用mmap时指定的内存大小是4097,page对齐后正好是8k。 该区域的物理内存大小是0,因为我们还没使用过该区域。...通过上面的示例程序和pmap命令,我们可以清楚的看到,进程的虚拟内存物理内存是何时分配的。 那如何确定物理内存的分配是page fault触发的呢?...由此可见,示例程序中的那两次赋值操作,触发了page fault,进而分配了物理内存

1.5K10

Win32之内存管理之虚拟内存物理内存

一丶虚拟内存物理内存   我们知道每个应用程序都有自己独立的4GB空间. ...而值是存储在物理内存的.如下图所示. ? 根据上图所示. 我们可以分清虚拟内存物理内存. 如果我们更改了物理内存的值.那么就会影响A进程或者B进程....所以说虚拟内存是假的.当用的时候才会存储在物理内存 二丶物理内存的管理.   物理内存是使用4K的方式来管理的.也就是4096个字节.也成为一页.所以以后我们使用API的时候....用户模式可以使用的内存就是橘黄色的位置.但是没有对应的物理页.当我们申请了内存才会有对应的物理页 如果想看三环程序使用的物理页.可以通过双机调试. 调试我们的程序....物理页大小根据你的物理内存.大小来设置的.也就是说你的物理内存多大就可以换算出来.我们可以通过任务管理器查看你的物理页总数. 例如下图: ?

1.3K40

物理内存是如何组织管理的

真是因为内存资源的不足,在计算机的整个过程中衍生出各种各样的内存管理方法。 而内存管理的终极目标就是合理的不浪费的使用物理内存。Linux针对如何合理的使用物理内存,软件上设计了多种的内存管理方法。...今天我们就来讨论下Linux是如何组织物理内存的,通俗的说就是如何管理电脑的内存条的。 Linux使用节点(node),区域(zone),页(page)三级结构来描述整个物理内存。...NUMA通常用在服务器领域,可以通过CONFIG_NUMA来配置是否开启 zone ZONE的意思是把整个物理内存划分为几个区域,每个区域有特殊的含义。...在32位系统中,假设我们物理内存是4G的。...假设一个page的大小是4K的,内核会将整个物理内存分割成一个一个4K大小的物理页,而4K大小物理页的区域我们称为page frame ?

1.5K10
领券