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

物理内存如何组织管理的

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

1.5K10

物理内存管理

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

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

如何查看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 那么,该服务器

20.1K41

操作系统是如何管理物理内存的?

物理内存管理 本文是操作系统系列第三篇,介绍物理内存管理。操作系统对内存的管理是非常复杂的,和程序的执行、硬件、编译器等密切相关。...本文从物理内存入手,介绍内存管理的重要概念,也为后续的虚拟内存管理内容做铺垫。 ?...地址空间 地址空间就是指地址的范围,从最小值到最大值: •物理地址空间从0到物理内存的最大值:0~MAX_sys•逻辑地址空间从0到程序虚拟内存范围的最大值:0~MAX_prog 下图展示了物理地址空间...地址解析 下图是CPU和计算机的基本架构,我们以此图来说明物理/逻辑地址在CPU和计算机中如何被解析处理的。...当然,这也带来了挑战:非连续内存分配中,如何有效实现和管理逻辑地址和物理地址间的映射。

2.7K261

【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。 ?...我们本节则重点学习下ZONE,重点是ZONE的数据结构,其中就可以看到ZONE中是如何管理我们page的,就会看到buddy分配器。...WMARK_LOW:低水位,代表内存已经开始吃紧,需要启动回收页内核线性kswapped去回收内存 WMARK_HIGH:高水位,代表内存还是足够的。...,当系统内存出现不足的时候,系统就会使用这些保留的内存来做一些操作,比如使用保留的内存进程用来可以释放更多的内存 free_area:用于维护空闲的页,其中数组的下标对应页的order数。...,就会开启内核swapd来回收内存 每次申请的page都会挂到lru链表中,当出现内存不足的时候,就会根据lru算法找出那些page最近很少使用,然后释放

3.4K10

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

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

6.5K21

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

可以从物理和逻辑两方面来考虑扩充内存容量,物理扩容没啥技术含量,需要我们研究的自然是如何从逻辑上扩充内存容量。 所谓逻辑扩充,就是说实际上物理内存的容量没有发生改变,但是它能装的东西却变多了。...前两种逻辑扩充技术已经成为历史,虚拟内存技术是目前的主流。所以也有很多人把内存管理这块的内容直接区分为物理内存管理和虚拟内存管理,一目了然。...图片来源《现代操作系统 - 第 3 版》 前文说过,指令真正执行的时候会将虚拟地址最终转换为物理地址。 那么,页式管理中是如何将虚拟地址(页面)和物理地址(页框)进行映射的呢?...换句话说,如何根据虚拟地址计算得到物理地址? 为此,操作系统为每个进程建立了一张页表,这是一个十分重要的数据结构!页表通常存在进程控制块(PCB)中。...页式管理中的两个重要问题 在任何分页式系统中,都不可避免地要考虑下面这两个问题: 问题 1:如何保证虚拟地址到物理地址的转换足够快 — 使用快表解决 问题 2:如何解决虚拟地址空间大,页表也会很大的问题

87410

如何通过Kubernetes安装Kubernetes以及物理服务器

首先介绍一下我们基础设施是如何工作的。我们将物理服务器分为两组:控制平面和计算节点。...image.png 它是如何工作的? 现在我们来看看它是如何工作的。...编排物理服务器 通过上面的介绍,我们知道如何在Kubernetes中部署控制平面,但是并没有添加任何工作节点,我们应该如何添加它们呢?...我之前介绍过,我们所有的服务器都是裸机,不使用任何虚拟化来运行Kubernetes,而是自己编排所有的物理服务器。...我也在考虑将它与机器控制器管理器集成,这将允许创建工作节点,不仅是物理服务器,例如,用于使用 kubevirt 创建虚拟机并在同一个 Kubernetes 集群中运行它们。

1.3K30

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

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

1.5K10

MySQL的内存结构与物理结构

“从MySQL的物理结构和内存结构开始了解MySQL的运行机制” ?...MySQL的数据存储结构主要分两个方面:物理存储结构与内存存储结构,作为数据库,所有的数据最后一定要落到磁盘上,才能完成持久化的存储。...内存结构为了实现提升数据库整体性能,主要用于存储临时数据和日志的缓冲。本文主要讲MySQL的物理结构,以及MySQL的内存结构,对于存储引擎也主要以InnoDB为主。 ?...redo log是记录的都是关于每个页(Page)的更改的物理情况,InnoDB要读取或修改数据是从磁盘读取到内存中进行的,然后再通过一套完整的策略来刷回磁盘,这其中并不是每次都要刷回磁盘的,因为会产生大量的随机...通常在专用服务器上,80%的物理内存会分配给Buffer Pool。

8K20

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

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

1.3K40

kvm宿主机物理内存预留方案

正常一个kvm虚拟机的管理内存大约为1.2GB左右,正常不会超过2GB 标准虚机机可用内存计算方法:     宿主机物理内存 - 系统保留内存4GB - N个虚拟机物理内存 - (N个虚拟机 * 2GB...虚拟机管理内存) 可能存在的内存浪费:     系统正常内存使用量为:2.5GB,空闲1.5GB     虚拟机管理内存通常为:1.2GB,空闲0.8GB     虚拟机内部业务未使用的物理内存:大小不定...swap分区大小如何设置?         正常大小应该设置为可能浪费的内存大小加上2GB保底内存。...分区避免内存浪费的方法还是比较靠谱的,此时虚机机可用内存计算方法为:     宿主机虚拟内存大小 - 系统保留内存4GB - N个虚拟机物理内存 - (N个虚拟机 * 2GB虚拟机管理内存)    ...使用swap分区方案可用于负载较低的虚机环境,可充分利用物理内存,避免浪费。     如果宿主机上虚拟机负载普遍较重,应按照标准可用内存计算方法进行分配,以物理内存大小为依据。

2.5K10
领券