- How to create a Linux swap file
- Steps for creating a Linux swap file
- Displaying RAM and swap usage on Linux
- How to activate swap space file persistently on Linux
- How to set up the swap space and file priority
- A note about the swappiness
- Removing swap file
- Conclusion
- How To Create a Linux Swap File
- How to Create and Enable Swap in Linux
- If You Appreciate What We Do Here On TecMint, You Should Consider:
- Ubuntu Linux Create and Add Swap File Tutorial
- What is a swap file on Ubuntu server or desktop system?
- Procedure to add a swap file on a Ubuntu Linux
- Create a swap file command
- Creating swap space using fallocate command instead of dd command
- Secure the swap file
- Turn on the swap file
- Verify new swap file and settings on Ubuntu
- How can I disable swapfile on Ubuntu?
- Update /etc/fstab file
- Tuning the swap file i.e. tuning virtual memory
- How do I set swappiness on a Ubuntu server?
- Conclusion
How to create a Linux swap file
Tutorial requirements | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Requirements | Linux | ||||||||||||||||||||||||||||||||||||||||
Root privileges | Yes | ||||||||||||||||||||||||||||||||||||||||
Difficulty | Easy | ||||||||||||||||||||||||||||||||||||||||
Est. reading time | 4 mintues | ||||||||||||||||||||||||||||||||||||||||
Tutorial details | |
---|---|
Difficulty level | Easy |
Root privileges | Yes |
Requirements | Ubuntu Linux |
Est. reading time | 10m |
Swap space is nothing but a disk storage used to increase the amount of memory available on the Ubuntu Linux server. In this tutorial, you will learn how to create and use a swap file on an Ubuntu Linux server.
What is a swap file on Ubuntu server or desktop system?
As a sysadmin it is necessary to add more swap space after installation on the server. Swap file allows Ubuntu Linux to use hard disk to increase virtual memory.
When the Ubuntu server runs low on memory, it swaps a section of RAM (say an idle program like foo) onto the hard disk (swap space) to free up memory for other programs. Then when you need that program (say foo again), kernel swapped out foo program, it changes places with another program in RAM.
Procedure to add a swap file on a Ubuntu Linux
Open the Terminal app or use the ssh client to get into the remote server. Login as a root user using sudo command:
sudo -s
Create a swap file command
Type the following command to create a 2GB swap file on Ubuntu:
# dd if=/dev/zero of=/swapfile bs=1G count=2
Sample outputs:
Verify that file has been created on the server:
# ls -lh /swapfile
Sample outputs:
Creating swap space using fallocate command instead of dd command
WARNING : Do not use the fallocate(1) command as it does not physically allocate the space, but swapon syscall requires a real space. The following example is for demo purposes and should be avoided at all costs.
Instead of the dd command, you can use the the faster fallocate command to create swap file as follows:
# fallocate -l 1G /swapfile-1
# ls -lh /swapfile-1
Sample outputs:
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
Secure the swap file
Type the following chmod command and chown command to secure and set correct file permission for security reasons:
# chown root:root /swapfile
# chmod 0600 /swapfile
# ls -lh /swapfile
Sample outputs:
A world-readable swap file is a huge local vulnerability. The above commands make sure only root user can read and write to the file.
Turn on the swap file
First, use the mkswap command as follows to enable the swap space on Ubuntu:
# mkswap /swapfile
Sample outputs:
Finally, activate the swap file, enter:
# swapon /swapfile
Verify new swap file and settings on Ubuntu
Type the following command
# swapon -s
Sample outputs:
You can also run the following commands to verify swap file and its usage:
# grep -i —color swap /proc/meminfo
# top
# htop
# atop
How can I disable swapfile on Ubuntu?
You need to use the swapoff command as follows:
# swapoff /swapfile
# swapon -s
Update /etc/fstab file
You need to make sure the swap file enabled when server comes on line after the reboot. Edit /etc/fstab file, enter:
# vi /etc/fstab
Append the following line:
Save and close the file.
Tuning the swap file i.e. tuning virtual memory
You can tune the following two settings:
- swappiness
- min_free_kbytes
- vfs_cache_pressure
How do I set swappiness on a Ubuntu server?
The syntax is:
# sysctl vm.swappiness=VALUE
# sysctl vm.swappiness=20
OR
# echo VALUE > /proc/sys/vm/swappiness
# echo 30 > /proc/sys/vm/swappiness
The value in /proc/sys/vm/swappiness file controls how aggressively the kernel will swap memory pages. Higher values increase agressiveness, lower values descrease aggressiveness. The default value is 60. To make changes permanent add the following line to /etc/sysctl.conf :
For database server such as Oracle or MySQL I suggest you set a swappiness value of 10. For more information see the official Linux kernel virtual memory settings page.
Conclusion
You learned how to add swap file under Ubuntu Linux. See the following resources:
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Category | List of Unix and Linux commands |
---|---|
Documentation | help • mandb • man • pinfo |
Disk space analyzers | df • duf • ncdu • pydf |
File Management | cat • cp • less • mkdir • more • tree |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Linux Desktop Apps | Skype • Spotify • VLC 3 |
Modern utilities | bat • exa |
Network Utilities | NetHogs • dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • glances • gtop • jobs • killall • kill • pidof • pstree • pwdx • time • vtop |
Searching | ag • grep • whereis • which |
Shell builtins | compgen • echo • printf |
Text processing | cut • rev |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Comments on this entry are closed.
Adding swap space is almost ALWAYS a bad idea. If your server is hitting swap, it means your applications are poorly configured. Either fix the app config, or add more RAM. There is no way that adding swap will increase performance – even a SSD hard drive is super slow compared to RAM.
But SOME swap may allow you time to kill a rogue program. It’s also much cheaper than buying RAM.
Nah ALWAYS a bad idea! Ass ram to your physical or virtual server! there’s no way adding swap is a good idea! swap is an idea of the last century where memory costed a lot! 😉
LOL sorry .. ADD ram to your physical… (sorry about that please moderator correct! thx ) 😉
Its good idea to solve our issue instantly but Adding physical RAM is permanent solutions.
1G RAM VPS get this error
dd: memory exhausted by input buffer of size 1073741824 bytes (1.0 GiB)
anyone can help?
dd if=/dev/zero of=/swapfile bs=1G count=4 creates a 4GB file – not 2GB like the tutorial states
@crossRT simply reduce the buffer size, like:
sudo dd if=/dev/zero of=/swapfile bs=500M count=4
Results in ->
-rw-r–r– 1 root root 2.0G Nov 27 23:31 /swapfile
yeah, i did it with fallocate command.
Anyway, thanks! =)
This is useful.
# dd if=/dev/zero of=/swapfile bs=1G count=4 did not worked.
but “# dd if=/dev/zero of=swapfile bs=M count=2000” worked instead of that.
more easy with this command :
root@sites:
# dd if=/dev/zero of=/swapfile bs=1M count=1024
root@sites:
# mkswap /swapfile
root@sites:
# nano /etc/fstab
than add this line :
/swapfile swap swap defaults 0 0
i added swap file but now showing in free command. is there any issue
Источник