Linux交换空间是什么

Fanly 问答 2020-03-18 17:23:25 阅读(...)

Linux交换空间(swap space)是磁盘上的一块区域,可以是一个分区或一个文件,或者是他们组合。当系统物理内存吃紧时,Linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进程服务。

Linux 交换空间swap space)是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。简单点说,当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,这就是我们常说的 swap out 和 swap in。

交换空间 Linux swap

理论上来说,如果物理内存足够多并且不需要休眠功能,那 swap 就没什么用,可关键问题是我们很难保证物理内存在任何情况下都够用,因为总有意想不到的情况发生,比如某些进程耗内存超预期,服务器压力超预期,内存泄漏等。

Linux swap 的好处

1.对于一些大型的应用程序(如 LibreOffice、video editor 等),在启动的过程中会使用大量的内存,但这些内存很多时候只是在启动的时候用一下,后面的运行过程中很少再用到这些内存。有了 swap 后,系统就可以将这部分不这么使用的内存数据保存到 swap 上去,从而释放出更多的物理内存供系统使用。

2.很多发行版(如 ubuntu)的休眠功能依赖于 swap 分区,当系统休眠的时候,会将内存中的数据保存到 swap 分区上,等下次系统启动的时候,再将数据加载到内存中,这样可以加快系统的启动速度,所以如果要使用休眠的功能,必须要配置 swap 分区,并且大小一定要大于等于物理内存

3.在某些情况下,物理内存有限,但又想运行耗内存的程序怎么办?这时可以通过配置足够的 swap 空间来达到目标,虽然慢一点,但至少可以运行。

4.虽然大部分情况下,物理内存都是够用的,但是总有一些意想不到的状况,比如某个进程需要的内存超过了预期,或者有进程存在内存泄漏等,当内存不够的时候,就会触发内核的 OOM killer,根据 OOM killer 的配置,某些进程会被 kill 掉或者系统直接重启(默认情况是优先 kill 耗内存最多的那个进程),不过有了 swap 后,可以拿 swap 当内存用,虽然速度慢了点,但至少给了我们一个去 debug、kill 进程或者保存当前工作进度的机会。

5.如果看过 Linux 内存管理,就会知道系统会尽可能多的将空闲内存用于 cache,以加快系统的 I/O 速度,所以如果能将不怎么常用的内存数据移动到 swap 上,就会有更多的物理内存用于 cache,从而提高系统整体性能。

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • uclinux

    uCLinux是什么

    uclinux即“微控制器领域中的Linux系统”,主要是针对目标处理器没有存储管理单元MMU的嵌入式系统而设计的。已经被成功地移植到了很多平台上。
  • 虚拟内存 Virtual Memory

    虚拟内存是什么

    虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存,而实际上它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。大多数操作系统都使用了虚拟内存。
  • 笔记本电脑和手绘板

    虚拟内存怎么设置

    右键点击桌面上的“此电脑”,选择“属性”,打开系统信息界面,再选择左侧栏里的“高级系统设置”。然后点击“高级”选项卡,在性能一栏点“设置”,再选择“高级”选项卡,“虚拟内存”的功能栏,点“更改”。
  • Asahi Linux

    Asahi Linux是什么

    Asahi Linux是一个旨在将Linux移植到更新的Apple Silicon驱动的Mac的项目。基于Arch Linux ARM的桌面或最小环境的选择,或者用于安装OpenBSD或支持 Apple Silicon 的替代 Linux 发行版的基本UEFI环境通过可启动的 USB 驱动器。
  • zswap是什么

    zswap是什么

    zswap是一项Linux内核的虚拟内存压缩功能,可为将要交换的页面提供压缩回写缓存。
  • TeLOS Linux是什么

    TeLOS Linux是什么

    TeLOS 是一个基于 Debian 测试软件仓库的 GNU/Linux 发行版,建立在 KDE Plasma 5 桌面环境之上。它的愿景是希望在最新的 GNU/Linux 技术之上,为你提供一个不同的、现代化的 Linux 桌面体验。