欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

详解SWAP分区

程序员文章站 2022-03-08 20:11:51
...

这里来介绍一下Linux下的一个内存管理机制:SWAP分区

首先来介绍一下什么是SWAP分区:

SWAP分区是指,当内存中没有可用内存时,操作系统会把一些不常用的内存拿出来,放到可用内存池当中,除此之外,操作系统还会把一些在内存中,进程不常用内存拿出来放到内存池当中,且把这些数据存放到磁盘的SWAP分区中,当下次要用时则将内存拿回来,并从SWAP从读取数据存放进去,然后返回进程!

详解SWAP分区

但是缺点是在SWAP分区爆满的情况下会造成不稳定,列如:

当内存爆满时候,A进程需要一个1024字节的内存,此时B进程里刚好有1024个字节的内存不常用,那么此时操作系统会把这一部分内存里的数据存放到SWAP中,然后将其分配给A进程时候,但是倘若此时SWAP分区是爆满的情况下,就会出现无法分配的情况,这种情况下就会从磁盘中划分内存!

其次,倘若已经交换完成了,并且刚好交换完成之后,SWAP内存爆满了,此时,B进程需要那块内存,A进程需要保存这块内存的数据,那么此时SWAP分区爆满之后就没有办法将进程中的数据存放进去,所以此时A进程的数据则丢失,B进程数据恢复,所以会导致不稳定的情况!

SWAP存储在磁盘中,是Linux 下特有的机制,在安装操作系统时就已经设定好了,想要修改可以通过SWAP配置文件进行修改!

 #mkswap /home/swap Setting up swapspace version 1, size = 1023996 KiB

设置新的swap文件

# swapon /home/swap

如果你的电脑上没有swap文件或size=0,则swap服务linux会视为无效!

swap分区越大,磁盘的可用内存就越小!因为linux要划分一块区域用来存储swap分区!

注意windows上没有此服务,windows是直接使用虚拟内存,虚拟内存不够用从磁盘里划分!

相关标签: linux swap机制