====== Оптимизация Ubuntu: Настройка swap и параметров памяти ====== ===== Проблема ===== Алерт: ''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 ===== ==== Шаг 1: Создание swap файла ==== # Создать swap файл 2GB sudo fallocate -l 2G /swapfile # Установить права доступа sudo chmod 600 /swapfile # Создать swap sudo mkswap /swapfile # Активировать swap sudo swapon /swapfile # Проверить результат free -h swapon --show ==== Шаг 2: Добавление в автозагрузку ==== # Добавить в fstab для автоматической активации при загрузке echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # Проверить что добавилось grep swapfile /etc/fstab ==== Шаг 3: Оптимизация параметров памяти ==== # Добавить параметры оптимизации sudo tee -a /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 Ожидаемый результат: * Swap 2GB создан и активен * 100% swap свободен (0B используется) * swappiness = 10 * Все параметры сохранены для автозагрузки ===== Дополнительная оптимизация ===== ==== Ограничение размера журналов ==== Для систем с малым объемом RAM (менее 2GB): # Редактировать конфигурацию journald sudo nano /etc/systemd/journald.conf Раскомментировать и установить: SystemMaxUse=50M RuntimeMaxUse=50M # Перезапустить службу sudo systemctl restart systemd-journald ==== Очистка swap (опционально) ==== **Внимание:** Может временно подтормозить систему # Выгрузить и загрузить 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