Показать страницуИстория страницыСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Оптимизация Ubuntu: Настройка swap и параметров памяти ====== ===== Проблема ===== Алерт: ''High swap space usage (less than 50% free)'' - обычно возникает при отсутствии или неправильной настройке swap. ===== Диагностика ===== Проверяем текущее состояние системы: <code bash> # Проверить наличие и использование swap free -h # Текущее значение swappiness cat /proc/sys/vm/swappiness # Топ процессов по памяти ps aux --sort=-%mem | head -15 </code> ===== Решение: Создание и настройка swap ===== ==== Шаг 1: Создание swap файла ==== <code bash> # Создать swap файл 2GB sudo fallocate -l 2G /swapfile # Установить права доступа sudo chmod 600 /swapfile # Создать swap sudo mkswap /swapfile # Активировать swap sudo swapon /swapfile # Проверить результат free -h swapon --show </code> ==== Шаг 2: Добавление в автозагрузку ==== <code bash> # Добавить в fstab для автоматической активации при загрузке echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # Проверить что добавилось grep swapfile /etc/fstab </code> ==== Шаг 3: Оптимизация параметров памяти ==== <code bash> # Добавить параметры оптимизации 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 </code> ===== Параметры оптимизации ===== ^ Параметр ^ Значение ^ Описание ^ | ''vm.swappiness'' | 10 | Система будет использовать swap только при необходимости (по умолчанию 60) | | ''vm.vfs_cache_pressure'' | 50 | Баланс между кэшированием файлов и освобождением памяти | | ''vm.dirty_ratio'' | 10 | Процент памяти для грязных страниц перед записью на диск | | ''vm.dirty_background_ratio'' | 5 | Фоновая запись грязных страниц | ===== Проверка результата ===== <code bash> # Итоговая проверка free -h swapon --show cat /proc/sys/vm/swappiness </code> Ожидаемый результат: * Swap 2GB создан и активен * 100% swap свободен (0B используется) * swappiness = 10 * Все параметры сохранены для автозагрузки ===== Дополнительная оптимизация ===== ==== Ограничение размера журналов ==== Для систем с малым объемом RAM (менее 2GB): <code bash> # Редактировать конфигурацию journald sudo nano /etc/systemd/journald.conf </code> Раскомментировать и установить: <file> SystemMaxUse=50M RuntimeMaxUse=50M </file> <code bash> # Перезапустить службу sudo systemctl restart systemd-journald </code> ==== Очистка swap (опционально) ==== **Внимание:** Может временно подтормозить систему <code bash> # Выгрузить и загрузить swap заново sudo swapoff -a && sudo swapon -a </code> ===== Мониторинг ===== <code bash> # Посмотреть какие процессы используют 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 </code> vm/ubuntu/02-swapv2.txt Последнее изменение: 2025/12/16 19:02 — admin