linux的内存管理

wfwaegwageaw wfwaegwageaw     2022-08-01     300

关键词:

http://www.linuxeye.com/Linux/1932.html

linux的内存管理

linux的内存分为:物理内存和虚拟内存。
物理内存就是系统硬件提供的内存大小,是真正的内存。
虚拟内存:虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。
使用场景:物理内存不足,linux内核将暂时不用的内存数据写入交换空间,则物理内存得到释放;当需要用到那些数据时,则从交换空间读入物理内存。

常用内存监控命令:top free
free

total: 物理内存总大小
used:已经使用的物理内存大小
free:空闲的物理内存大小
shared:多个进程共享的内存大小
buffers/cached:磁盘缓存的大小

Men:代表物理内存使用情况
buffers/cache:代表磁盘缓存使用情况
swap:代表交换空间使用情况。

从内核的角度看内存的状态:
物理内存大小7820M,空闲内存大小824M。已经使用的内存为7820-824=6996M。可用内存824并不包含buffers和cached。
内核完全控制着内存的使用情况,Linux会在需要内存的时候,或在系统运行逐步推进时,将buffers和cached状态的内存变为free状态的内存,以供系统使用。

从应用层的角度看内存的状态:
已经使用4093M,可用空间大小3727M。3727=190+2712+824
应用程序可用的物理内存值是Mem项的free值加上buffers和cached值之和,也就是说,这个free值是包括buffers和cached项大小的,对于应用程序来说,buffers/cached占有的内存是可用的,因为buffers/cached是为了提高文件读取的性能,当应用程序需要用到内存的时候,buffers/cached会很快地被回收,以供应用程序使用。

为了降低磁盘读取数据对时间和资源的消耗,linux引入了buffer/cache机制
buffers与cached都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息,这样当操作系统需要读取某些文件时,会首先在buffers 与cached内存区查找,如果找到,直接读出传送给应用程序,如果没有找到需要数据,才从磁盘读取,这就是操作系统的缓存机制,通过缓存,大大提高了操 作系统的性能。但buffers与cached缓冲的内容却是不同的

buffers主要用来存放目录里面有什么内容,文件的属性以及权限等等。而cached直接用来记忆我们打开过的文件和程序。

 

linux内存管理子系统(概念入门)

...模型Linux虚拟地址空间分布虚拟地址转化为物理地址物理内存分配大纲内存管理子系统内存管理模型地址映射管理物理地址分配管理子系统简介Linux内核系统构成管理模型Linux内存子系统管理模型上面的三个部分主要做物理内存分... 查看详情

Linux下的动态内存管理

】Linux下的动态内存管理【英文标题】:DynamicmemorymanagmentunderLinux【发布时间】:2010-03-2817:25:16【问题描述】:我知道在windows下有global_alloc()之类的API函数,分配内存,返回句柄,然后可以锁定这个句柄,返回一个指针,然后再... 查看详情

启动期间的内存管理之初始化过程概述----linux内存管理

...者GitHubCSDN2016-06-14Linux-4.7X86&armgatiemeLinuxDeviceDriversLinux内存管理在内存管理的上下文中,初始化(initialization)可以有多种含义.在许多CPU上,必须显式设置适用于Linux内核的内存模型.例如在x86_32上需要切换到保护模式,然后内核才能检... 查看详情

Linux 内存管理开销

】Linux内存管理开销【英文标题】:Linuxmemorymanagementoverhead【发布时间】:2014-07-1017:49:04【问题描述】:我试图解释我在Linux中的应用程序占用的内存。我做了一个基本的测试,发现如果我们新建一些内存,它会为单个新内存分配... 查看详情

linux操作系统原理—内存管理—页式内存管理技术

目录文章目录目录虚拟内存技术页式内存管理技术虚拟内存技术虚拟内存技术是操作系统实现的一种高效的物理内存管理方式,具有以下作用:使得进程间彼此隔离:通过将物理内存和虚拟地址空间联系起来,并将虚拟地址空间... 查看详情

linux内核如何管理不到1GB的物理内存?

】linux内核如何管理不到1GB的物理内存?【英文标题】:Howdoesthelinuxkernelmanagelessthan1GBphysicalmemory?【发布时间】:2011-05-3012:55:05【问题描述】:我正在学习linux内核内部结构,在阅读“理解Linux内核”时,我遇到了很多与内存相关... 查看详情

linux内存管理机制

在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,主要特点是,无论物理内存有多大,Linux都将其充份利用,... 查看详情

linux进程管理

进程管理一.基础知识  1.内存空间分为:线性空间和物理空间  线性空间:内存被划分成页框,固定的存储空间      虚拟内存指令、数据、堆区、栈区       常驻内存系统的指定和数据  2.进程上下文切换... 查看详情

十问linux虚拟内存管理(glibc)

...做MySQL版本升级时(5.1->5.5),发现了mysqld疑似“内存泄露”现象,但通过valgrind等工具检测后,并没发现类似的问题。因此,需要深入学习Linux的虚拟内存管理方面的内容来解释这个现象。Linux的虚拟内存管理... 查看详情

内存管理:一文读懂linux内存组织结构及页面布局

参考技术A1、内存是什么?1)内存又称主存,是CPU能直接寻址的存储空间,由半导体器件制成;2)内存的特点是存取速率快,断电一般不保存数据,非持久化设备;2、内存的作用1)暂时存放cpu的运算数据2)硬盘等外部存储器交换的... 查看详情

linux当中有关内存管理的概念

在linux内存管理中什么是page,zone,node,页帧,区域,节点。实际上Linux内存管理只是一套机制而已,它是对于DRAM分配的一套机制。page,zone,node是用来形容linux这套机制的名词。页帧,区域ÿ... 查看详情

linux操作系统原理—虚拟内存管理

目录文章目录目录虚拟内存技术页式内存管理技术x86_32CPU虚拟内存虚拟地址格式与内核页表虚拟内存空间KernelSpaceUserSpacex86_64CPU虚拟内存虚拟地址格式与内核页表(四级页表)虚拟内存空间TLB缓冲(快表)进程页表虚拟内存技术... 查看详情

linux-linux内存管理(代码片段)

文章目录概念物理内存和虚拟内存内存的监控从内核的角度来查看内存的状态从应用层的角度来看系统内存的使用状态缓冲区(buffer)与缓存(cache)的异同交换空间的使用创建交换空间激活和使用交换空间移除... 查看详情

伙伴系统之伙伴系统概述--linux内存管理(十四)

...者GitHubCSDN2016-09-02Linux-4.7X86&armgatiemeLinuxDeviceDriversLinux内存管理1前景回顾1.1Linux内存管理的层次结构Linux把物理内存划分为三个层次来管理层次描述存储节点(Node)CPU被划分为多个节点(node),内存则被分簇,每个CPU对应一个本地物理... 查看详情

linux内存管理——段页式访问

1、早期的内存管理方式1.1、管理方式介绍(1)早期的程序都是直接运行在物理内存上,程序访问的都是物理地址,根本没有虚拟地址的概念;(2)如果计算机同时只运算一个程序,只要程序需要的内存空间不超过实际... 查看详情

了解linux内核如何管理一个进程的内存

...据结构)的实例来实现的。在task_struct中的mm域指向到内存描述符,mm_struct是一个程序在内存中的执行摘要,如图,它保存了起始和结束内存段,进程使用的物理内存页面的数量(RSS常驻内 查看详情

linux交换内存空间原理(swap)(linux内存管理)(cgroups)(代码片段)

...什么是swap?为什么需要swap?swap的缺点?到底要不要swap?内存不够用内存勉强够用内存充裕桌面环境服务器环境swap大小配置多少比较合适?怎么配置swap?查看系统中已经配置的swap查看系统中swapin/out的情况添加swap分区添... 查看详情

linux0.12内核的内存管理基础

在Linux0.12内核中,为了有效地使用机器中的物理内存,在系统初始化阶段内存被划分成几个功能区域。Linux内核程序占据在物理内存的开始部分,接下来是供硬盘或软盘等块设备使用的高速缓冲区部分,其中要扣... 查看详情