Проблема: Swap заполнен полностью
На Raspberry Pi 4 с 8GB RAM система активно использует swap, хотя оперативной памяти должно хватать. Диагностика показала:
free -m
total used free shared buff/cache available
Mem: 8059 5893 607 642 2413 2166
Swap: 511 507 4
Анализ: Из 8GB оперативной памяти свободно 600MB, swap из 511MB заполнен на 507MB. Система активно использует подкачку, что замедляет работу.
Поиск процессов-виновников
Определяем какие процессы используют swap память:
Анализ использования swap
# Установка утилиты для анализа sudo apt update sudo apt install smem # Просмотр топ-процессов по использованию swap sudo smem -s swap -r | head -20
PID User Command Swap USS PSS RSS
949 mysql /usr/sbin/mariadbd 145088 217568 217752 221008
160318 mazzick /usr/lib/chromium/chromium 63136 338768 350965 426336
160628 mazzick /usr/lib/chromium/chromium 28544 1392 2079 22288
Результаты анализа:
- MariaDB: 145MB swap — основной потребитель
- Chromium: Несколько процессов, суммарно ~300MB swap
- Другие процессы: Xwayland, labwc, node.js
Быстрые решения
Очистка swap
Быстрое освобождение swap памяти:
sudo swapoff -a && sudo swapon -a
Проверка результата:
free -m
Оптимизация MariaDB
Настройка конфигурации:
Конфигурационный файл
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Оптимальные параметры:
innodb_buffer_pool_size = 64M key_buffer_size = 16M tmp_table_size = 32M max_heap_table_size = 32M
Управление Chromium
Снижение потребления памяти:
- Закрытие неиспользуемых вкладок
- Отключение лишних расширений
- Использование режима энергосбережения
Экстренное завершение:
pkill chromium
Долгосрочные настройки
Увеличение swap
Для Raspberry Pi 4 с 8GB RAM рекомендуется 2GB swap:
Создание swap файла
# Удаление старого swap sudo swapoff /swapfile sudo rm /swapfile # Создание нового swap 2GB sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # Постоянное подключение echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Внимание: При использовании SD карты частые записи в swap сокращают её срок службы. Рекомендуется использовать zram.
Настройка zram
Установка и настройка zram
# Установка zram sudo apt install zram-tools # Настройка конфигурации sudo nano /etc/default/zramswap # Параметры конфигурации: PERCENT=50 ALGO=zstd
Настройка swappiness
Оптимизация частоты использования swap
# Текущее значение cat /proc/sys/vm/swappiness # Установка оптимального значения echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Мониторинг и профилактика
Мониторинг в реальном времени
Отслеживание состояния системы:
watch -n 2 'free -m; echo ""; sudo smem -t -p -s swap | head -10'
Установка мониторов:
sudo apt install htop gotop
Управление автозагрузкой
Просмотр автозагружаемых служб:
systemctl list-unit-files --state=enabled
Отключение ненужных служб:
sudo systemctl disable mariadb
Диагностические команды
Быстрая диагностика:
ps aux --sort=-%mem | head -10
swapon --show
cat /proc/swaps
Итоговые рекомендации
Чек-лист действий:
- Определить процессы-потребители swap (smem)
- Оптимизировать или остановить MariaDB
- Контролировать использование Chromium
- Увеличить swap или настроить zram
- Установить swappiness=10
- Настроить регулярный мониторинг
Специфика для Raspberry Pi:
- Используйте zram вместо swap на SD картах
- Регулярно очищайте swap при использовании файла подкачки
- Контролируйте автозагрузку — ресурсы ограничены
- Рассмотрите Firefox как альтернативу Chromium
- При активной работе с swap используйте SSD вместо SD карты
Комментарии
Пока нет комментариев. Будьте первым!