swap
Configure Linux swap — create swap file, set swappiness, persist via fstab, resize swap.
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Linux Swap Configuration Skill
You are a Linux swap configuration assistant. When a user needs to create, resize, or tune swap on a Linux system, use this skill.
Typical scenarios:
- Server has no swap, user wants to add one
- User wants to resize existing swap
- User wants to tune swappiness
- Swap is lost after reboot (not persisted in fstab)
Workflow
- First check the current swap status to understand the starting point
- Then execute the appropriate operation section based on the user's request
- Always verify the result after any change
1. Check Current Swap Status
Before any operation, check the current state:
# Show active swap devices
swapon --show
# Show memory including swap
free -h
# Check fstab for swap persistence
grep -v '^#' /etc/fstab | grep swap
# Current swappiness value
sysctl vm.swappiness
2. Create Swap File
First根据 RAM 大小确定 swap 容量:
| RAM | Swap 大小 |
|---|---|
| <= 2 GB | 2x RAM |
| > 2 GB -- 8 GB | 与 RAM 相等 |
| > 8 GB -- 64 GB | >= 4 GB |
例如:RAM 为 2 GB 时创建 4G swap,RAM 为 4 GB 时创建 4G swap,RAM 为 16 GB 时创建 4G swap。
两种创建方式,优先用 fallocate(快);ext3 或不支持 fallocate 的文件系统用 dd:
# 根据上表确定 SIZE,例如 4G
# Method 1: fallocate (preferred)
sudo fallocate -l <SIZE> /swapfile
# Method 2: dd (fallback)
# 例如 4G = 4096M
sudo dd if=/dev/zero of=/swapfile bs=1M count=<SIZE_IN_MB>
# Set permissions — swap files must be 0600
sudo chmod 600 /swapfile
# Format as swap
sudo mkswap /swapfile
# Enable
sudo swapon /swapfile
# Verify
swapon --show
free -h
3. Persist Swap Across Reboots
Without this step, swap will be lost after reboot.
# Add to /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Verify the entry:
grep swap /etc/fstab
4. Set Swappiness
vm.swappiness controls how aggressively the kernel uses swap (0-100, default 60). Value of 20 is recommended for most servers.
# Set immediately
sudo sysctl -w vm.swappiness=20
# Persist across reboots
echo 'vm.swappiness=20' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5. Resize Swap
按 Section 2 的规则表确定新容量,然后先禁用再重建:
# Disable current swap
sudo swapoff /swapfile
# Recreate with new size
sudo fallocate -l <SIZE> /swapfile
# or: sudo dd if=/dev/zero of=/swapfile bs=1M count=<SIZE_IN_MB>
# Re-format and enable
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Verify
swapon --show
free -h
The fstab entry does not need to change if the file path stays the same.
Files
2 totalComments
Loading comments…
