Linux交换空间是什么

2023-07-31 02:16:00 生活常识 投稿:软馨吖

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

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

Linux交换空间是什么

理论上来说,如果物理内存足够多并且不需要休眠功能,那 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,从而提高系统整体性能。

标签: # 空间 # linux
声明:犀牛文库所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系admin@qq.com