How to Increase Swap Space in Debian: A Sysadmin’s Guide to Memory Management


3 views

Swap space acts as virtual memory when your physical RAM is fully utilized. In Debian-based systems, managing swap is crucial for server stability and handling memory-intensive applications. There are two primary ways to handle swap:

  • Swap partition: Dedicated disk partition for swap
  • Swap file: Flexible file-based swap solution

Before making changes, examine your current swap setup:

sudo swapon --show
free -h
cat /proc/swaps

This is the most flexible approach for modern Debian systems:

# Create a 4GB swap file
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

To make it persistent, add this line to /etc/fstab:

/swapfile none swap sw 0 0

For systems with LVM, you can resize swap partitions:

# First disable current swap
sudo swapoff -v /dev/vg0/swap

# Resize the logical volume
sudo lvresize -L +4G /dev/vg0/swap

# Recreate swap
sudo mkswap /dev/vg0/swap

# Re-enable
sudo swapon /dev/vg0/swap

Adjust swappiness value (0-100) to control how aggressively system uses swap:

# Check current value
cat /proc/sys/vm/swappiness

# Temporarily set to 10
sudo sysctl vm.swappiness=10

# Make permanent
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

Permission Denied Errors: Ensure proper permissions with chmod 600 on swap files.

Insufficient Space: Use df -h to verify available disk space before creating swap files.

Swap Not Persisting: Always update /etc/fstab for permanent changes.


Swap space acts as an extension of physical RAM, allowing your Debian system to handle more processes than what could fit in physical memory alone. When RAM becomes full, inactive pages are moved to swap space. While not as fast as RAM, proper swap configuration can prevent out-of-memory situations.

Before making changes, let's check your current swap setup:

sudo swapon --show
free -h
cat /proc/swaps

This will display active swap devices/files and their sizes. The free -h command shows memory usage including swap.

There are two primary methods to increase swap space:

Method 1: Creating a Swap File

This is the most flexible approach as it doesn't require repartitioning:

# Create a 2GB swap file
sudo fallocate -l 2G /swapfile

# Set proper permissions
sudo chmod 600 /swapfile

# Format as swap
sudo mkswap /swapfile

# Enable the swap file
sudo swapon /swapfile

Method 2: Creating a Swap Partition

For systems where you can repartition disks:

# Use fdisk or parted to create a new partition
sudo fdisk /dev/sdX

# After creating partition, set type to 'Linux swap'
# Then format and enable:
sudo mkswap /dev/sdXn
sudo swapon /dev/sdXn

To ensure your swap persists after reboot, edit /etc/fstab:

# For swap file
/swapfile none swap sw 0 0

# For swap partition
/dev/sdXn none swap sw 0 0

Consider these tweaks in /etc/sysctl.conf:

# Adjust swappiness (10-60 is typical)
vm.swappiness = 30

# Cache pressure setting
vm.vfs_cache_pressure = 50

Apply changes with sudo sysctl -p.

If replacing existing swap:

sudo swapoff /old_swapfile
sudo rm /old_swapfile
# Remove corresponding entry from /etc/fstab

After implementation, verify with:

sudo swapon --show
free -h
cat /proc/swaps