Linux swap size recommendations

Chapter 15. Swap Space

Swap space in Linux is used when the amount of physical memory (RAM) is full. If the system needs more memory resources and the RAM is full, inactive pages in memory are moved to the swap space. While swap space can help machines with a small amount of RAM, it should not be considered a replacement for more RAM. Swap space is located on hard drives, which have a slower access time than physical memory. Swap space can be a dedicated swap partition (recommended), a swap file, or a combination of swap partitions and swap files. Note that Btrfs does not support swap space.

In years past, the recommended amount of swap space increased linearly with the amount of RAM in the system. However, modern systems often include hundreds of gigabytes of RAM. As a consequence, recommended swap space is considered a function of system memory workload, not system memory.

Table 15.1, “Recommended System Swap Space” illustrates the recommended size of a swap partition depending on the amount of RAM in your system and whether you want sufficient memory for your system to hibernate. The recommended swap partition size is established automatically during installation. To allow for hibernation, however, you need to edit the swap space in the custom partitioning stage.

Recommendations in Table 15.1, “Recommended System Swap Space” are especially important on systems with low memory (1 GB and less). Failure to allocate sufficient swap space on these systems can cause issues such as instability or even render the installed system unbootable.

Table 15.1. Recommended System Swap Space

Amount of RAM in the system Recommended swap space Recommended swap space if allowing for hibernation
⩽ 2 GB 2 times the amount of RAM 3 times the amount of RAM
> 2 GB – 8 GB Equal to the amount of RAM 2 times the amount of RAM
> 8 GB – 64 GB At least 4 GB 1.5 times the amount of RAM
> 64 GB At least 4 GB Hibernation not recommended

There are two reasons why hibernation is not recommended with systems with more than 64 GB of RAM. Firstly, hibernation requires extra space for an inflated (and perhaps infrequently utilized) swap area. Secondly, the process of moving resident data from RAM to disk and back on can take a lot of time to complete.

At the border between each range listed in Table 15.1, “Recommended System Swap Space”, for example a system with 2 GB, 8 GB, or 64 GB of system RAM, discretion can be exercised with regard to chosen swap space and hibernation support. If your system resources allow for it, increasing the swap space may lead to better performance.

Note that distributing swap space over multiple storage devices also improves swap space performance, particularly on systems with fast drives, controllers, and interfaces.

Читайте также:  Linux проверить доступность udp порта

File systems and LVM2 volumes assigned as swap space should not be in use when being modified. Any attempts to modify swap fail if a system process or the kernel is using swap space. Use the free and cat /proc/swaps commands to verify how much and where swap is in use.

You should modify swap space while the system is booted in rescue mode, see Booting Your Computer in Rescue Mode in the Red Hat Enterprise Linux 7 Installation Guide. When prompted to mount the file system, select Skip .

15.1. Adding Swap Space

Sometimes it is necessary to add more swap space after installation. For example, you may upgrade the amount of RAM in your system from 1 GB to 2 GB, but there is only 2 GB of swap space. It might be advantageous to increase the amount of swap space to 4 GB if you perform memory-intense operations or run applications that require a large amount of memory.

You have three options: create a new swap partition, create a new swap file, or extend swap on an existing LVM2 logical volume. It is recommended that you extend an existing logical volume.

15.1.1. Extending Swap on an LVM2 Logical Volume

By default, Red Hat Enterprise Linux 7 uses all available space during installation. If this is the case with your system, then you must first add a new physical volume to the volume group used by the swap space.

After adding additional storage to the swap space’s volume group, it is now possible to extend it. To do so, perform the following procedure (assuming /dev/VolGroup00/LogVol01 is the volume you want to extend by 2 GB):

Procedure 15.1. Extending Swap on an LVM2 Logical Volume

# swapoff -v /dev/VolGroup00/LogVol01
# lvresize /dev/VolGroup00/LogVol01 -L +2G
# mkswap /dev/VolGroup00/LogVol01
# swapon -v /dev/VolGroup00/LogVol01

To test if the swap logical volume was successfully extended and activated, inspect active swap space:

15.1.2. Creating an LVM2 Logical Volume for Swap

To add a swap volume group 2 GB in size, assuming /dev/VolGroup00/LogVol02 is the swap volume you want to add:

# lvcreate VolGroup00 -n LogVol02 -L 2G
# mkswap /dev/VolGroup00/LogVol02
/dev/VolGroup00/LogVol02 swap swap defaults 0 0
# swapon -v /dev/VolGroup00/LogVol02

To test if the swap logical volume was successfully created and activated, inspect active swap space:

15.1.3. Creating a Swap File

Procedure 15.2. Add a Swap File

Determine the size of the new swap file in megabytes and multiply by 1024 to determine the number of blocks. For example, the block size of a 64 MB swap file is 65536.

# dd if=/dev/zero of=/swapfile bs=1024 count=65536
/swapfile swap swap defaults 0 0

Источник

How Much Swap Should You Use in Linux?

How much should be the swap size? Should the swap be double of the RAM size or should it be half of the RAM size? Do I need swap at all if my system has got several GBs of RAM? Your questions answered in this detailed article.

How much should be the swap size? Should the swap be double the RAM size, or should it be half of the RAM size? Do I need swap at all if my system has got several GBs of RAM? Perhaps these are the most commonly asked questions about choosing swap size while installing Linux. It’s nothing new. There has always been a lot of confusion around swap size. For a long time, the recommended swap size was double the RAM size but that golden rule is not applicable to modern computers anymore. We have systems with RAM sizes up to 128 GB; many old computers don’t even have this much hard disk. But what swap size would you allot to a system with 32 GB of RAM? 64GB? That would be a ridiculous waste of a hard disk, won’t it? Before you see how much swap size you should have, let’s quickly learn a thing or two about swap memory. This will help you understand why swap is used. The explanation has been simplified for (almost) everyone’s understanding.

Читайте также:  Linux прошивка d link

What is swap? When is swap used?

How much should be the swap size in Ubuntu and other Linux?

Your system uses Random Access Memory (aka RAM) when it runs an application. When only a few applications are running, your system manages with the available RAM. But if too many applications are running or the applications need a lot of RAM, your system gets into trouble. If an application needs more memory, but the entire RAM is already in use, the application will crash. Swap acts as a breather to your system when the RAM is exhausted. What happens here is that when the RAM is exhausted, your Linux system uses part of the hard disk memory and allocates it to the running application. That sounds cool. Does this mean if you allocate 50GB of swap size, your system can run hundreds or perhaps thousands of applications simultaneously? WRONG! You see, the speed matters here. RAM access data in the order of nanoseconds. An SSD access data in microseconds, while a regular hard disk accesses the data in milliseconds. This means that RAM is 1000 times faster than SSD and 100,000 times faster than the usual HDD. If an application relies too much on the swap, its performance will degrade as it cannot access the data at the same speed as it would have in RAM. So instead of taking 1 second for a task, it may take several minutes to complete the same task. It will leave the application almost useless. This is known as thrashing in computing terms. In other words, a little swap is helpful. A lot of it will be of no good use.

Why is swap needed?

  • If your system has RAM less than 1 GB, you must use swap as most applications would exhaust the RAM soon.
  • If your system uses resource heavy applications like video editors, it would be a good idea to use some swap space as your RAM may be exhausted here.
  • If you use hibernation, then you must add swap because the content of the RAM will be written to the swap partition. This also means that the swap size should be at least the size of RAM.
  • Avoid strange events like a program going nuts and eating RAM.

Do you need swap if you have lots of RAM?

This is a good question indeed. If you have 32GB or 64 GB of RAM, chances are that your system would perhaps never use the entire RAM and hence it would never use the swap partition.

Читайте также:  How to partition disk in linux

But will you take the chance? I am guessing if your system has 32GB of RAM, it should also be having a hard disk of 100s of GB. Allocating a couple of GB of swap won’t hurt. It will provide an extra layer of ‘stability’ if a faulty program starts misusing RAM.

Can you use Linux without swap?

Yes, you can, especially if your system has plenty of RAM. But as explained in the previous section, a little bit of swap is always advisable.

In fact, a distribution like Ubuntu automatically creates a swap file of 2 GB in size. This should give you an indication that having some swap space is recommended.

Don’t worry if you didn’t create a swap partition while installing Linux. You can always create swap file in Linux at any time.

How much should be the swap size?

Now comes the big question. What should be the ideal swap space for a Linux install?

And the problem here is that there is no definite answer to this swap size question. There are just recommendations.

Different people have a different opinion on ideal swap size. Even the major Linux distributions don’t have the same swap size guideline.

If you go by Red Hat’s suggestion, they recommend a swap size of 20% of RAM for modern systems (i.e. 4GB or higher RAM).

  • Twice the size of RAM if RAM is less than 2 GB
  • Size of RAM + 2 GB if RAM size is more than 2 GB i.e. 5GB of swap for 3GB of RAM

Ubuntu has an entirely different perspective on the swap size as it takes hibernation into consideration. If you need hibernation, a swap of the size of RAM becomes necessary for Ubuntu.

  • If RAM is less than 1 GB, swap size should be at least the size of RAM and at most double the size of RAM
  • If RAM is more than 1 GB, swap size should be at least equal to the square root of the RAM size and at most double the size of RAM
  • If hibernation is used, swap size should be equal to size of RAM plus the square root of the RAM size

Confused? I know it is confusing. This is why I have created this table that will give you the Ubuntu recommended swap size based on your RAM size and hibernation need.

RAM Size Swap Size (Without Hibernation) Swap size (With Hibernation)
256MB 256MB 512MB
512MB 512MB 1GB
1GB 1GB 2GB
2GB 1GB 3GB
3GB 2GB 5GB
4GB 2GB 6GB
6GB 2GB 8GB
8GB 3GB 11GB
12GB 3GB 15GB
16GB 4GB 20GB
24GB 5GB 29GB
32GB 6GB 38GB
64GB 8GB 72GB
128GB 11GB 139GB

How much swap size do you use?

The answer is never simple. As I stated earlier, for a long time, swap has been recommended to be double the size of RAM. In fact my Dell XPS 13 Ubuntu edition has 16GB of swap size for 8GB of RAM. So even Dell decided to go with the golden rule of swap=2xRAM.

What swap size do you prefer for your Linux system?

Источник

Оцените статью
Adblock
detector