Linux 创建和增加 Swap 分区教程

有时候我们机器的内存不够时,就可以通过创建 Swap 分区来缓解这种尴尬场面,Linux 下的 Swap (交换分区)相当于 Windows 下的”虚拟内存”,当系统内存不够时,把一部分硬盘空间虚拟成内存使用,从而解决内存不够用的情况。下面介绍下 Linux 如何创建和增加 Swap 分区。

一、添加 Swap 分区

1.查看 Linux 当前分区情况:

free -m

如果是增加 swap 分区,则先把当前所有分区都关闭了:

swapoff -a

可能遇到的问题:《解决 swapoff failed: Cannot allocate memory 无法关闭分区的问题

2.创建要作为 Swap 分区文件(其中 /var/swapfile 是文件位置,bs*count 是文件大下,例如以下命令就会创建一个 4G 的文件):

dd if=/dev/zero of=/var/swapfile bs=1M count=4096

3.建立 Swap 的文件系统(格式化为 Swap 分区文件):

mkswap /var/swapfile

4.启用 Swap 分区:

swapon /var/swapfile

5.查看 Linux 当前分区:

free -m

如果有 Swap 就说明创建成功了:

Linux 创建和增加 Swap 分区教程

6.设置开启启动,在 /etc/fstab 文件中加入一行代码:

/var/swapfile swap swap defaults 0 0

二、总结

虽然我给小内存的服务器都加了 Swap 分区,但是好像效果不明显,不知道是不是自己操作的问题,按道理“在系统内存不够时,把一部分硬盘空间虚拟成内存使用”应该能解决我内存不够用的情况,但往往不够用的时候好像还是卡,所以经济条件允许直接升级配置吧。

2021 年更新:

之前觉得 Swap 分区设置了用处不大,后来发现好像是 Swap 分区大小设置的问题。

那么 Swap 分区应该设置多大呢?在 Red Hat Enterprise Linux 中,以下是设置合适的交换分区大小的规则:

物理内存 交换分区(SWAP)

  1. <= 4g 至少 4G
  2. 4~16G 至少 8G
  3. 16G~64G 至少 16G
  4. 64G~256G 至少 32G

前后对比可以参考:《Linux 中交换空间 Swap 应该设置多大?与内存大小的关系整理

给TA打赏
共{{data.count}}人
人已打赏
运维

某次压测时物理内存被用光 Tomcat 被 Kernel kill 掉的案例

2023-11-15 19:21:00

运维

利用 iftop 解决 Linux 由于带宽占用过高导致无法远程连接的问题

2023-11-15 19:34:49

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索