I want to allocate memory to work as a swap file in an Amazon Elastic Compute Cloud (Amazon EC2) instance. How do I do that?
When physical RAM is already in use, Amazon EC2 instances use swap space as a short-term replacement for physical RAM.
Contents of RAM that aren't in active use or that aren't needed as urgently as other data or instructions can be temporarily paged to a swap file. This frees up RAM for more immediate use.
You can also create swap space on a partition. For more information, see How do I allocate memory to work as swap space on an Amazon EC2 instance using a partition on my hard drive?
Note: It's a best practice to create swap space only on ephemeral storage instance store volumes.
Calculate the swap space size
As a general rule, calculate swap space according to the following:
Amount of physical RAM | Recommended swap space |
---|---|
2 GB of RAM or less | 2x the amount of RAM but never less than 32 MB |
More than 2 GB of RAM but less than 32 GB | 4 GB + (RAM – 2 GB) |
32 GB of RAM or more | 1x the amount of RAM |
Note: Swap space should never be less than 32 MB.
Create a swap file
1. Use the dd command to create a swap file on the root file system, where "bs" is the block size and "count" is the number of blocks. In this example the swap file is 4 GB:
$ sudo dd if=/dev/zero of=/swapfile bs=1G count=4
2. Update the read and write permissions for the swap file:
$ chmod 600 /swapfile
3. Set up a Linux swap area:
$ mkswap /swapfile
4. Make the swap file available for immediate use by adding the swap file to swap space:
$ swapon /swapfile
5. Verify that the procedure was successful:
$ swapon -s
6. Enable the swap file at boot time by editing the /etc/fstab file:
$ vi /etc/fstab $ /swapfile swap swap defaults 0 0
Did this page help you? Yes | No
Back to the AWS Support Knowledge Center
Need help? Visit the AWS Support Center
Published: 2018-08-30
Updated: 2019-01-09