• Aucun résultat trouvé

Part II. File Systems

Chapter 11. Swap Space

11.1. What is 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.

The size of your swap should be equal to twice your computer's physical RAM for up to 2 GB of physical RAM. For physical RAM above 2 GB, the size of your swap should be equal to the amount of physical RAM above 2 GB. The size of your swap should never be less than 32 MB.

Using this basic formula, a system with 2 GB of physical RAM would have 4 GB of swap, while one with 3 GB of physical RAM would have 5 GB of swap.

Note

Unfortunately, deciding on the amount of swap to allocate to Red Hat Enterprise Linux is more of an art than a science, so hard rules are not possible. Each system's most used applications should be accounted for when determining swap size.

Important

File systems and LVM2 volumes assigned as swap space cannot be in use when being modified.

For example, no system processes can be assigned the swap space, as well as no amount of swap should be allocated and used by the kernel. Use the free and cat /proc/swaps commands to verify how much and where swap is in use.

The best way to achieve swap space modifications is to boot your system in rescue mode, and then follow the instructions (for each scenario) in the remainder of this chapter. Refer to

Chapter 5, Basic System Recovery for instructions on booting into rescue mode. When prompted to mount the file system, select Skip.

11.2. 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 128 MB to 256 MB, but there is only 256 MB of swap space. It might be advantageous to increase the amount of swap space to 512 MB 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.

11.2.1. Extending Swap on an LVM2 Logical Volume

want to extend):

1. Disable swapping for the associated logical volume:

# swapoff -v /dev/VolGroup00/LogVol01

2. Resize the LVM2 logical volume by 256 MB:

# lvm lvresize /dev/VolGroup00/LogVol01 -L +256M

3. Format the new swap space:

# mkswap /dev/VolGroup00/LogVol01

4. Enable the extended logical volume:

# swapon -va

5. Test that the logical volume has been extended properly:

# cat /proc/swaps # free

11.2.2. Creating an LVM2 Logical Volume for Swap

To add a swap volume group (assuming /dev/VolGroup00/LogVol02 is the swap volume you want to add):

1. Create the LVM2 logical volume of size 256 MB:

# lvm lvcreate VolGroup00 -n LogVol02 -L 256M

2. Format the new swap space:

# mkswap /dev/VolGroup00/LogVol02

3. Add the following entry to the /etc/fstab file:

/dev/VolGroup00/LogVol02 swap swap defaults 0 0

4. Enable the extended logical volume:

# swapon -va

5. Test that the logical volume has been extended properly:

# cat /proc/swaps # free

11.2.3. Creating a Swap File

To add a swap file:

1. 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.

2. At a shell prompt as root, type the following command with count being equal to the desired block

size:

dd if=/dev/zero of=/swapfile bs=1024 count=65536

3. Setup the swap file with the command:

mkswap /swapfile

4. To enable the swap file immediately but not automatically at boot time:

swapon /swapfile

5. To enable it at boot time, edit /etc/fstab to include the following entry:

/swapfile swap swap defaults 0 0 The next time the system boots, it enables the new swap file.

6. After adding the new swap file and enabling it, verify it is enabled by viewing the output of the command cat /proc/swaps or free.

11.3. Removing Swap Space

Sometimes it can be prudent to reduce swap space after installation. For example, say you downgraded the amount of RAM in your system from 1 GB to 512 MB, but there is 2 GB of swap space still assigned.

It might be advantageous to reduce the amount of swap space to 1 GB, since the larger 2 GB could be wasting disk space.

You have three options: remove an entire LVM2 logical volume used for swap, remove a swap file, or reduce swap space on an existing LVM2 logical volume.

11.3.1. Reducing Swap on an LVM2 Logical Volume

To reduce an LVM2 swap logical volume (assuming /dev/VolGroup00/LogVol01 is the volume you want to extend):

1. Disable swapping for the associated logical volume:

# swapoff -v /dev/VolGroup00/LogVol01

2. Reduce the LVM2 logical volume by 512 MB:

# lvm lvreduce /dev/VolGroup00/LogVol01 -L -512M

3. Format the new swap space:

# mkswap /dev/VolGroup00/LogVol01

4. Enable the extended logical volume:

# swapon -va

5. Test that the logical volume has been reduced properly:

# cat /proc/swaps # free

11.3.2. Removing an LVM2 Logical Volume for Swap

The swap logical volume cannot be in use (no system locks or processes on the volume). The easiest way to achieve this it to boot your system in rescue mode. Refer to Chapter 5, Basic System Recovery for instructions on booting into rescue mode. When prompted to mount the file system, select Skip.

To remove a swap volume group (assuming /dev/VolGroup00/LogVol02 is the swap volume you want to remove):

1. Disable swapping for the associated logical volume:

# swapoff -v /dev/VolGroup00/LogVol02

2. Remove the LVM2 logical volume of size 512 MB:

# lvm lvremove /dev/VolGroup00/LogVol02

3. Remove the following entry from the /etc/fstab file:

/dev/VolGroup00/LogVol02 swap swap defaults 0 0

4. Test that the logical volume has been extended properly:

# cat /proc/swaps # free

11.3.3. Removing a Swap File

To remove a swap file:

1. At a shell prompt as root, execute the following command to disable the swap file (where /swapfile is the swap file):

# swapoff -v /swapfile

2. Remove its entry from the /etc/fstab file.

3. Remove the actual file:

# rm /swapfile

11.4. Moving Swap Space

To move swap space from one location to another, follow the steps for removing swap space, and then follow the steps for adding swap space.