How to add more swap space by adding new swap partition in RHEL or CentOS 7 ?

How to add more swap space by adding new swap partition in RHEL or CentOS 7


What is swap?


Swap space on a disk is used when the amount of physical RAM is full in the Linux system. When the system runs out of RAM, inactive pages are moved from the RAM to the swap space. Swap space can be either a dedicated swap partition or a swap file. So here we will see how you can add more swap space as a swap file.


In this article we will see how we can add more swap space using a new swap partition.


Steps :

Let's check how much swap is available on the system currently:

[root@localhost ~]# swapon --show

[root@localhost ~]# free -h

I have a new 10GB disk named "/dev/sdb" and i want to use it as a swap space.


[root@localhost ~]# fdisk -l
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Step 1 : Create a disk partition on /dev/sdb and set partition type as swap:


[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xceaf232e.

Command (m for help): n  ==> CREATE NEW PARTITION
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p  ==> PRIMARY PARTITION
Partition number (1-4, default 1): ==> PRESS ENTER
First sector (2048-20971519, default 2048): ==> PRESS ENTER
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): ==> PRESS ENTER
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): p  ==> PRINT PARTITION TABLE

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xceaf232e

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20971519    10484736   83  Linux

Command (m for help): l  ==> LIST TYPE OF SUPPORTED FILESYSTEM

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1 80  Old Minix

Command (m for help): t  ==> CHANGE PARTITION TYPE
Selected partition 1
Hex code (type L to list all codes): 82 ==> ENTER "82" FOR SWAP
Changed type of partition 'Linux' to 'Linux swap / Solaris'

Command (m for help): p  ==> PRINT PARTITION TABLE

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xceaf232e

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20971519    10484736   82  Linux swap / Solaris

Command (m for help): w  ==> WRITE PARTITION TABLE CHANGES
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


Step 2 : Run "partprobe" command to re-read the partition table after changes:

[root@localhost ~]# partprobe /dev/sdb


Step 3 : Format the new /dev/sdb1 swap disk:

[root@localhost ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 10484732 KiB
no label, UUID=8b375896-99fe-4b54-8c78-9ef41accef9b


Step 4 : Activate swap space on "/dev/sdb1" partition:

[root@localhost ~]# swapon /dev/sdb1


Step 5 : To make these new changes persistent across reboot add an fstab entry:

[root@localhost ~]# vi /etc/fstab

/dev/sdb1 swap swap defaults 0 0

save and exit.


Step 6 : Verify if new disk is added as a swap space:

[root@localhost ~]# swapon --show
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition 3.9G   0B   -2
/dev/sdb1 partition  10G   0B   -3


[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        421M        3.0G         14M        281M        3.0G
Swap:           13G          0B         13G


Removing swap partition gracefully:


Step 1 : Deactivate swap on /swapfile:

[root@localhost ~]# swapoff -v /dev/sdb1
swapoff /dev/sdb1


Step 2 : Remove swap entry from /etc/fstab file:


Step 3 : Delete "/dev/sdb1" partition or remove disk [OPTIONAL] :


Verify if swap space from "/dev/sdb1" partition is deactivated and removed:


[root@localhost ~]# swapon --show
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition 3.9G   0B   -2


[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        413M        3.0G         14M        281M        3.0G
Swap:          3.9G          0B        3.9G

Comments

Popular posts from this blog

Recover or restore initramfs file in RHEL or CentOS 7

Space reclamation / UNMAP on RHEL or CentOS 7

How to recover /boot partition on RHEL or CentOS 7?