Алерт: High swap space usage (less than 50% free) - обычно возникает при отсутствии или неправильной настройке swap.
Проверяем текущее состояние системы:
# Проверить наличие и использование swap free -h # Текущее значение swappiness cat /proc/sys/vm/swappiness # Топ процессов по памяти ps aux --sort=-%mem | head -15
# Создать swap файл 2GB sudo fallocate -l 2G /swapfile # Установить права доступа sudo chmod 600 /swapfile # Создать swap sudo mkswap /swapfile # Активировать swap sudo swapon /swapfile # Проверить результат free -h swapon --show
# Добавить в fstab для автоматической активации при загрузке echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # Проверить что добавилось grep swapfile /etc/fstab
# Добавить параметры оптимизации sudo tee -a /etc/sysctl.conf <<EOF vm.swappiness=10 vm.vfs_cache_pressure=50 vm.dirty_ratio=10 vm.dirty_background_ratio=5 EOF # Применить настройки без перезагрузки sudo sysctl -p # Проверить применение параметров cat /proc/sys/vm/swappiness grep "vm.swappiness\|vm.vfs_cache_pressure\|vm.dirty" /etc/sysctl.conf
| Параметр | Значение | Описание |
|---|---|---|
vm.swappiness | 10 | Система будет использовать swap только при необходимости (по умолчанию 60) |
vm.vfs_cache_pressure | 50 | Баланс между кэшированием файлов и освобождением памяти |
vm.dirty_ratio | 10 | Процент памяти для грязных страниц перед записью на диск |
vm.dirty_background_ratio | 5 | Фоновая запись грязных страниц |
# Итоговая проверка free -h swapon --show cat /proc/sys/vm/swappiness
Ожидаемый результат:
Для систем с малым объемом RAM (менее 2GB):
# Редактировать конфигурацию journald sudo nano /etc/systemd/journald.conf
Раскомментировать и установить:
SystemMaxUse=50M RuntimeMaxUse=50M
# Перезапустить службу sudo systemctl restart systemd-journald
Внимание: Может временно подтормозить систему
# Выгрузить и загрузить swap заново sudo swapoff -a && sudo swapon -a
# Посмотреть какие процессы используют swap for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | head -15 # Статистика использования памяти vmstat 1 5