以前的操作系统是实模式,例如dos。每个时候只有一个进程在跑,这个进程使用全部的物理内存。
后来发展到保护模式,分时多进程。一个CPU上跑多个进程, 但进程不知道到底有多少内存可以用,它能访问内存最大地址。例如16位系统就能访问2^16byte,32位就是2^32位。但是实际上没有那么多内存阿?怎么办?保护模式就应运而生了。
假设进程是一个刘祥,裁判(系统)一发令他就开始跑步。但是裁判说给你1秒,可以跑100米。于是刘祥开始跑步(内存地址),一秒后刘祥只跑了10米,裁判吹哨说:刘祥你先歇会,我要去给王军霞吹哨呢,现记住你跑到哪里了(保护),等会从这里开始。裁判给王军霞吹哨,一只跑一秒,回来再给刘祥吹哨再跑1秒,如此往复。开始跑步的人少,刘祥还可以站在跑道上休息。后来跑步的人越来越多,跑道都挤满了人,那么只能把一些人移动到跑道旁的草地上休息(交换)。后来发现有些人横七竖八的躺着,占了不少空间,于是规定每个人只能站着(page),这样可以容纳很多的人。
swap -- 草地,就是存放page的硬盘空间。
virtual memory -- 假设刘祥跑n圈就已经是到北京的距离了,可是他们还在原地。虚拟就是不存在的。
page -- 草地上的格,每次只容纳一个人。
为了提高磁盘存取效率,Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache.前者针对磁盘块的读写,后者针对文件inode的读写.这些Cache有效缩短了I/O系统调用(比如read,write,getdents)的时间.
内存活动基本上可以用3个数字来量化:活动虚拟内存总量,交换(swapping)率和调页(paging)率.其中第一个数字表明内存的总需求量,后两个数字表示那些内存中有多少比例正处在使用之中.目标是减少内存活动或增加内存量,直到调页率保持在一个可以接受的水平上为止.
活动虚拟内存的总量(VM)=实际内存大小(size of real memory)(物理内存)+使用的交换空间大小(amount of swap space used)
当程序运行需要的内存大于物理内存时,UNIX系统采用了调页机制,即系统copy一些内存中的页面到磁盘上,腾出来空间供进程使用。
大多数系统可以忍受偶尔的调页,但是频繁的调页会使系统性能急剧下降。
UNIX内存管理:UNIX系统通过2种方法进行内存管理,“调页算法”,“交换技术”。
调页算法是将内存中最近不常使用的页面换到磁盘上,把常使用的页面(活动页面)保留在内存中供进程使用。
交换技术是系统将整个进程,而不是部分页面,全部换到磁盘上。正常情况下,系统会发生一些交换过程。
当内存严重不足时,系统会频繁使用调页和交换,这增加了磁盘I/O的负载。进一步降低了系统对作业的执行速度,即系统I/O资源问题又会影响到内存资源的分配。
Unix的虚拟内存
Unix的虚拟内存是一个十分复杂的子系统,它实现了进程间代码与数据共享机制的透明性,并能够分配比系统现有物理内存更多的内存,某些操作系统的虚存甚至能通过提供缓存功能影响到文件系统的性能,各种风格的UNIX的虚存的实现方式区别很大,但都离不开下面的4个概念。
1:实际内存
实际内存是指一个系统中实际存在的物理内存,称为RAM。实际内存是存储临时数据最快最有效的方式,因此必须尽可能地分配给应用程序,现在的RAM的形式有多种:SIMM、DIMM、Rambus、DDR等,很多RAM都可以使用纠错机制(ECC)。
2:交换空间
交换空间是专门用于临时存储内存的一块磁盘空间,通常在页面调度和交换进程数据时使用,通常推荐交换空间的大小应该是物理内存的二到四倍。
3:页面调度
页面调度是指从磁盘向内存传输数据,以及相反的过程,这个过程之所以被称为页面调度,是因为Unix内存被平均划分成大小相等的页面;通常页面大小为4KB和8KB(在Solaris中可以用pagesize命令查看)。当可执行程序开始运行时,它的映象会一页一页地从磁盘中换入,与此类似,当某些内存在一段时间内空闲,就可以把它们换出到交换空间中,这样就可以把空闲的RAM交给其他需要它的程序使用。
4:交换
页面调度通常容易和交换的概念混淆,页面调度是指把一个进程所占内存的空闲部分传输到磁盘上,而交换是指当系统中实际的内存已不够满足新的分配需求时,把整个进程传输到磁盘上,交换活动通常意味着内存不足。
vmstat监视内存性能:该命令用来检查虚拟内存的统计信息,并可显示有关进程状态、空闲和交换空间、调页、磁盘空间、CPU负载和交换,cache刷新以及中断等方面的信息。
Procs
r: The number of processes waiting for run time.
运行的和等待(CPU时间片)运行的进程数,这个值也可以判断是否需要增加CPU(长期大于1)
b: The number of processes in uninterruptable sleep.
处于不可中断状态的进程数,常见的情况是由IO引起的
w: The number of processes swapped out but otherwise runnable.
Memory
swpd: the amount of virtual memory used (kB).
free: the amount of idle memory (kB).
空闲的物理内存
buff: the amount of memory used as buffers (kB).
作为buffer cache的内存,对块设备的读写进行缓冲
cache: the amount of memory used as cache.
Swap
si: Amount of memory swapped in from disk (kB/s). 虚拟内存的页导入(从SWAP DISK导入RAM)
so: Amount of memory swapped to disk (kB/s). 虚拟内存的页导出.
(从RAM到SWAP DISK)
相关推荐
银河麒麟系统V10 Server SP1 安装Oracle 19c
•oracle-database-preinstall-19c 这个工具会自动配置系统参数,创建 oracle 用户和组。比较方便。•••••银河麒麟高级服务器操作系统V10 - 国产操作系统、银河麒麟、中标麒麟、开放麒麟、星光麒麟——麒麟软件官方网站。
内存中的swap机制
内存资源紧张时,linux会通过Swap,把不常用的匿名页换出到磁盘,访问时再从磁盘换入到内存;系统定期回收的阈值通过/proc/sys/vm/min_free_kbytes 调整;页回收的倾向通过 /proc/sys/vm/wappiness 调整;监控策略sar,/proc/zoneinfo查看。参考链接。......
GNSS-RTK/INS紧组合里,那个‘杆臂改正’到底怎么算?一个公式讲清INS与天线位置的关系
本文深入解析GNSS-RTK/INS紧组合导航系统中的杆臂改正(Lever Arm Correction)原理与实现方法。详细介绍了杆臂效应的物理本质、数学建模及误差扰动分析,揭示了IMU与GNSS天线位置关系的核心公式,并提供了工程实现中的常见误区与验证方法。通过Python代码示例和紧组合量测模型处理流程,帮助开发者准确理解并应用这一关键技术。
物理内存与swap
当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。这个是SWAP 交换分区的作用。实际上,我们更关注的应该是SWAP分区的大小问题。设置多大才是最优的。
ros2笔记-4.6使用launch启动脚本
ros2 4.6 使用launch启动多节点
实战拆解:RAG vs Agent在金融风控中的性能对比
2024年上半年我帮某华东地区城商行做零售交易反欺诈系统升级时,技术团队曾发生过一次激烈争论:一派认为应该优先上RAG(检索增强生成)方案,成本低、落地快、合规性好;另一派坚持要上Agent(智能体)方案,推理能力强、能应对复杂新型欺诈。最终我们做了完整的AB测试,结论是两者没有绝对的优劣,只有场景适配的差异:RAG适合高并发、低时延的实时风控场景,Agent适合低并发、高准确率要求的事后核查/大额审批场景,两者结合的 hybrid 方案能覆盖95%以上的风控需求。本文我会结合真实项目的测试数据,从核心概念
linux 手动添加swap
Linux手动添加swap分区 用法:dd [操作数] ... 或:dd 选项 Copy a file, converting and formatting according to the operands. bs=BYTES read and write up to BYTES bytes at a time cbs=BYTES ...
2025年MathorCup数学应用挑战赛【B题完整论文】附参考代码(免费分享)
摘。
Linux中buffer/cache,swap,虚拟内存和page ++
原文出自:http://www.itpub.net/thread-1095682-1-1.html 要明白这个首先要知道什么是保护模式和实模式。 以前的操作系统是实模式,例如dos。每个时候只有一个进程在跑,这个进程使用全部的物理内存。后来发展到保护模式,分时多进程。一个CPU上跑多个进程, 但进程不知道到底有多少内存可以用,它能访问内存最大地址。例如16位系统就能访问2^16byte,3
【YOLOv12多模态融合改进】| TFAM:时序融合注意力模块 | 引入通道 - 空间双分支注意力机制,解决双模态特征融合中时序关联不足的问题
TFAM模块通过时序信息驱动的注意力机制,解决了双时相特征融合中时序关联不足的问题,实现了更精准的变化区域定位和特征表示。其结构轻量、泛化性强,为变化检测任务提供了一种高效的特征融合解决方案。
ESP8266-Arduino编程实例-TEA5767收音机模块驱动
TEA5767HN 是一款用于低压应用的单芯片电子调谐 FM 立体声收音机,具有完全集成的中频 (IF) 选择性和解调功能,频率范围从76—108MHZ自动数字调谐。 该收音机完全无需调整,高灵敏度,高稳定性,低噪音,收音模块。只需要最少的小型低成本外部组件。 收音机可以调到欧洲、美国和日本的 FM 波段。...
Linux中关于swap、虚拟内存和page的区别
最近看了Linux的一些内存管理知识,发现一些既熟悉又陌生的几个名词,swap、虚拟内存、page分页,都是与内存相关的一些信息,但他们之间有什么区别呢?要明白这个首先要知道什么是保护模式和实模式。 以前的操作系统是实模式,例如dos。每个时候只有一个进程在跑,这个进程使用全部的物理内存。 后来发展到保护模式,分时多进程。一个CPU上跑多个进程, 但进程不知道到底有多少内存可以用,它能
MDF和DHF、DMR、DHR三者差异?注册与备案文件?医疗器械产品技术要求编写指导原则
定义:设计历史文档(DHF ) 指的是描述某医疗器械成品设计过程的有关记录。内容:DHF包括设计开发活动的所有记录。从最初的策划、客户需求、设计输入,设计输出、设计验证、设计确认、所有的设计评审,设计转换,以及设计变更相关的所有记录。均属于DHF的一部分。要求:各制造商应为每个类型的器械建立并保持设计历史文件。设计历史文件应包含或引用必要的记录,以证实设计符合经批准的设计计划和法规的要求。
linux swap分页,Linux中关于swap、虚拟内存和page的区别
最近看了linux的一些内存管理知识,发现一些既熟悉又陌生的几个名词,swap、虚拟内存、page分页,都是与内存相关的一些信息,但他们之间有什么区别呢?要明白这个首先要知道什么是保护模式和实模式。,l9b_\kfO9?j051Testing软件测试网x6r"J:}x:s以前的操作系统是实模式,例如dos。每个时候只有一个进程在跑,这个进程使用全部的物理内存。{L0GBhs|0{4d^y.Od0后...
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
Linux对内存的管理, 以及page fault的概念
原文地址: http://blog.scoutapp.com/articles/2015/04/10/understanding-page-faults-and-memory-swap-in-outs-when-should-you-worry 学习后的总结: Linux allocates memory to processes by dividing the physical memory into pages, and then mapping those physical pages to t
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
linux内存调度原理,Linux内存管理机制(1)
最近在看Linux内存管理机制,但是几个概念开始还是云里雾里:swap、虚拟内存、page分页,都是与内存相关的一些信息,但是他们之间有什么区别呢?要明白这个,首先要知道什么是保护模式和实模式?老早以前的操作系统是实模式,例如dos,每个时候只能有一个进程在跑,这个进程使用全部的物理 内存。后来发展到保护模式,分时多进程,一个CPU上跑多个进程, 但进程不知道到底有多少内存可以用,它能访问内存最大...
SWAP和PAGE的区别
以前的操作系统是实模式,例如dos。每个时候只有一个进程在跑,这个进程使用全部的物理内存。 后来发展到保护模式,分时多进程。一个CPU上跑多个进程, 但进程不知道到底有多少内存可以用,它能访问内存最大地址。例如16位系统就能访问2^16byte,32位就是2^32位。但是实际上没有那么多内存阿?怎么办?保护模式就应运而生了。 假设进程是一个刘祥,裁判(系统)一发令他就开始跑步。但是裁判...
4320



被折叠的 条评论
为什么被折叠?



