loading...

How to use AWS EBS volume as a swap memory

hardiksondagar profile image Hardik Sondagar ・2 min read

What is swap space?

Swap space in Linux can be used when a system requires more memory than it has been physically allocated (RAM). When swap space is enabled, Linux systems can swap infrequently used memory pages from physical memory to swap space (either a dedicated partition or a swap file in an existing file system) and free up that space for memory pages that require high-speed access. [1]

Step 1 - Create EBS Volume

Follow steps to create EBS Volume in AWS Console, that we'll use as a swap memory.

  1. Go to EC2 Dashboard
  2. Select EBS Volumes
  3. Create Volume
  4. Recommended size of swap volume is 2 times of RAM [2]
  5. Select availability zone same as your EC2 instance

Step 2 - Attach EBS Volume to EC2

Select EBS Volume that we just created for swap and your EC2 instance.

Step 3 - Set EBS Volume as swap space

Run lsblk to check new volume, it will appear as /dev/xvdf on instance.

$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  256G  0 disk
└─xvda1 202:1    0  256G  0 part /
xvdf    202:80   0   32G  0 disk

Set up the swap area

$ sudo mkswap /dev/xvdf

Enable swap

$ sudo swapon /dev/xvdf

Make this swap setting persist by adding following line in /etc/fstab

$ sudo nano /etc/fstab
/dev/xvdf none swap sw 0 0

Step 4 - Check swap space

$ sudo swapon --show
NAME      TYPE      SIZE   USED PRIO
/dev/xvdf partition  32G 279.9M   -1

Posted on by:

Discussion

markdown guide
 

Similarly, if you've deployed your instance on a elastic EBS volume, you can grow the volume and add a partition to the EBS ...that you can swap to.

 
 

What a simple, yet great post. As an AWS user, I'll try this ASAP on one of my test instances.

 
 
 

Great article. Straight to the point and easy to follow.