首页 > 系统相关 >内存交换空间(swap)

内存交换空间(swap)

时间:2024-06-13 20:43:35浏览次数:13  
标签:系统 内存 交换 页表 空间 swap 物理

内存交换空间(swap)

swap是磁盘上的一块区域,是一种增加系统虚拟内存(磁盘空间充当内存)的特殊分区或文件。当系统的物理内存(RAM)不足以满足应用程序的运行需求时,Linux内核会使用swap临时存储不活跃的内存页,从而释放出物理内存供活跃进程使用。

swap的原理

swap的原理是基于操作系统的分页机制,它允许系统将不常使用的内存页(pages)暂时移动到硬盘上,从而释放物理内存(RAM)供其他更活跃的进程使用。

1.分页机制:操作系统将物理内存和虚拟内存划分为固定大小的页,通常是4KB。每个进程都有自己的虚拟地址空间,这个空间也被划分为页。
2.页表:操作系统维护一个页表,记录了哪些虚拟页映射到物理页框。页表还包含了每个页的访问权限和其他信息。
3.内存不足:当系统物理内存不足以满足所有进程的需求时,操作系统需要决定哪些页可以暂时移出内存。
4.交换出去:选择一些不常使用的页,将他们写入到硬盘上的swap空间。这个过程称为"换出"(swapping out)或"页面置换"(paging out)。
5.更新页表:操作系统更新页表,标记已经交换出去的页,并将这些页从物理内存中移除。
6.请求页面:当进程访问一个已经被交换出去的页时,会发生"缺页中断"。
7.交换进来:操作系统查找空闲的物理页,或者选择另一个页换出,为所需的页腾出空间。然后从swap空间中读取所需的页到新的物理页框中,并更新页表。这个过程称为"换入"(swapping in)或"页面调入"(paging in)。
8.重复上述过程:随着进程的运行,内存页会在swap空间和物理内存之间不断交换,以满足系统的内存需求。

swap空间的使用会有一定的性能开销,因为硬盘的读写速度远低于内存的读写速度。因此swap视为物理内存的补充,而非替代品。理想情况下,系统的物理内存足够大,以至于swap空间很少被使用。但当物理内存紧张时,swap是一个重要的机制,可以防止系统因内存不足而崩溃。

swap的使用场景

  1. 内存不足时: 当系统的物理内存(RAM)不足以支持所有运行中的进程和应用程序时,swap空间被用来临时存储不活跃的内存页,从而释放物理内存供其他活跃的进程使用。swap可以作为最后一道防线,防止系统因内存溢出而崩溃。即使物理内存耗尽,系统仍然可以运行,尽管性能会受到影响。
  2. 系统休眠与恢复: 当系统进入休眠状态时,内存中的内容通常会被写入硬盘上的休眠文件中。在系统恢复时,这些内容会从硬盘读取会内存。虽然不是swap直接使用的场景,但swap空间可以用来临时存储数据,来优化这一过程。

swap相关命令

查看系统的内存和交换空间(swap)的使用情况
free -h

查看交换空间(swap)的详细信息
swapon --show

swap内存释放(需要保证内存剩余量要大于等于swap使用量,否则会宕机)
根据内存机制,swap分区释放后,所有存放在swap分区的文件会转存到物理内存中,通过先关闭swap,之后再开启swap
关闭swap: swapoff -a
开启swap: swapon -a=

标签:系统,内存,交换,页表,空间,swap,物理
From: https://www.cnblogs.com/shenStudy/p/18246716

相关文章

  • Python: faces Swap
     #encoding:utf-8#版权所有2024©涂聚文有限公司#许可信息查看:两个头像图片之间换脸#描述:https://stackoverflow.com/questions/902761/saving-a-numpy-array-as-an-image?answertab=votes#Author:geovindu,GeovinDu涂聚文.#IDE:PyCharm2023.1......
  • 革新网络通信:多端口TSN交换机IP核,引领工业通信新时代
     导语在数字化转型的浪潮中,企业面临着越来越复杂的挑战,尤其在确保关键操作的实时性和可靠性方面。时间敏感网络(TSN)技术以其独特的优势,有效应对这些挑战,开启了工业通信新纪元。时间敏感网络 TIMESENSITIVENETWORKING时间敏感网络(TSN,Time-SensitiveNetworking)是IEEE802......
  • 唯一获得SK海力士官方认证!雷克沙ARES RGB DDR5 8000 32GB套条内存评测:买得起的高端旗
    一、前言:业内唯一获得海力士官方认证的A-Die颗粒DDR5内存DDR4时代,三星的B-Die可谓是名满天下。不过随着DDR5的到来,三星并没有续写前代的辉煌,而海力士的A-Die则成了高性能超频DDR5内存颗粒的代名词。虽然市面上高频DDR5内存几乎清一色采用了海力士DRAM颗粒,但真正取得了SK海力士官......
  • c++定义了类在main函数中使用的一个坑现象的解决,让我理解了栈,堆和内存之间关系。
    首先描述一下我的坑是啥?我的坑就是写了一个对集料颗粒进行角度计算的类,在main函数中使用采用了类定义申明,这样使用导致一个坑,这个类中对于集料的数目进行了宏定义,发现数据如果超过20个,编译就报错,当时没有太在意这个坑,没有思考什么原因。也就将就者用了。后来对接同事说,这个颗粒数......
  • python数据分析-笔记本内存和价格预测分析
    一、背景和研究意义计算机已成为现代社会不可或缺的工具,广泛应用于个人生活、学术研究和商业领域。随着科学技术的飞速发展,计算机不仅在性能上不断突破,在种类和品牌上也呈现出多样化和差异化。无论是办公、娱乐、学习还是创作,人们都离不开电脑的帮助。然而,随着电脑市场的不断......
  • 高性能版本的零内存分配LikeString函数(ZeroMemAllocLikeOperator)
    继上一篇文章在.NETCore,除了VB的LikeString,还有其它方法吗?(四种LikeString实现分享)分享了四种实现方式,笔者对这四种实现方式,不管是执行性能还是内存分配性能上,都不太满意。那么是否有好的实现方法呢?答案是有的。今天我们就搬出ReadOnlySpan<T>这个非常好用的结构类型,它是在.N......
  • 史上最强!华为交换机常用命令大全,网络工程师收藏!
    华为作为全球领先的信息与通信解决方案供应商,其交换机产品在全球市场占据了重要位置。华为交换机以高性能、高可靠性和丰富的功能著称,广泛应用于企业、数据中心、运营商网络等各类环境中。无论是中小企业的局域网,还是大型数据中心的核心网络,华为交换机都能提供灵活、稳定的......
  • 为什么总选不到合适的安全数据交换系统?解决问题重点在这
    安全数据交换系统对于企业而言,重要性不言而喻。企业业务开展离不开数据交换,只有数据流动起来,才能真正发挥价值,但数据流动的过程,涉及多个系统、多种环境、多个人员角色,因此,有较大的风险。同时,不同业务场景、不同人员对于数据流动的要求是不同的,这就导致企业总是很难找到真正适合的......
  • ENSP虚拟交换机与真实物理环境通信
    文章目录一、背景二、思路三、软件安装1、ENSP版本获取2、ENSP安装四、虚拟化1、组网规划2、ENSP配置2.1、云朵配置2.2、虚拟交换机配置2.3、测试连通性2.4、PC1远程执行LSW1的snmpwalk2.5、LSW1/2访问公网2.6、桥接报文过滤五、总结一、背景公司使用eve-ng模拟......
  • 动态内存管理<C语言>
    导言       在C语言学习阶段,指针、结构体和动态内存管理,是后期学习数据结构的最重要的三大知识模块,也是C语言比较难的知识模块,但是“天下无难事”,只要认真踏实的学习,也能解决,所以下文将介绍动态内存管理涉及到的一些函数以及概念。目录导言为什么存在动态内存管理......