详解SWAP分区

本文介绍了Linux下的SWAP分区机制,解释了它如何通过释放不常用内存到磁盘来为活跃进程提供更多的可用内存资源。同时也探讨了SWAP分区爆满可能导致的问题。

这里来介绍一下Linux下的一个内存管理机制: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是直接使用虚拟内存,虚拟内存不够用从磁盘里划分!

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

17岁boy想当攻城狮

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值