Введение
Современные Linux-системы могут замедляться из-за накопления ненужных процессов, не оптимальных параметров ядра и нерационального использования дискового пространства. Этот гайд позволит вам быстро проверить текущее состояние системы, внести конкретные изменения в настройки ядра, дисковой подсистемы, служб и своп-памяти, а затем подтвердить видимое улучшение производительности. Все шаги написаны для популярных дистрибутивов, таких как Ubuntu, Debian, Fedora и CentOS.
Требования / Подготовка
- Права root (или
sudo) для редактирования конфигурационных файлов и управления службами. - Поддерживаемые ОС: Ubuntu 22.04, Debian 12, Fedora 38, CentOS Stream 9 (другие дистрибутивы работают аналогично).
- Установленные утилиты:
htop,iotop/iostat(часть пакетаsysstat),vim/nanoдля редактирования файлов. - Резервная копия важных данных перед изменением параметров ввода-вывода.
Пошаговая инструкция
Шаг 1: Проверка ресурсов системы
Перед внесением изменений получите базовые метрики:
htop # просмотр загрузки CPU и процессов
iostat -x 1 3 # активность диска (чтение/запись)
free -h # объём RAM и свопа
df -h # использование файловых систем
Запишите наблюдаемые пиковые значения – они послужат отправной точкой для оценки улучшения.
Шаг 2: Настройка параметров ядра через sysctl
Откройте файл конфигурации:
/etc/sysctl.conf
Добавьте или отредактируйте следующие параметры (значения подобраны для большинства серверных сценариев):
# Снижение использования свопа
vm.swappiness = 10
# Максимальное количество открытых файлов
fs.file-max = 2048576
# Сетевой буфер
net.core.rmem_max = 12582912
net.core.wmem_max = 12582912
net.ipv4.tcp_rmem = 4096 87380 12582912
net.ipv4.tcp_wmem = 4096 65536 12582912
# Оптимизация для NFS/сетевых файловых систем
netnfs.nfs_client_timeout = 30000
Сохраните файл и примените изменения:
sudo sysctl -p
Перезагрузка не требуется – параметры вступят в силу немедленно.
Шаг 3: Оптимизация дисковой подсистемы
SSD-накопители. Регулярно запускайте команду очистки неиспользуемого пространства:
sudo fstrim -v /
HDD-накопители. Если /tmp не используется для кэширования, временных файлов или приложений, можно отключить журнал для этого монтирования (пример для ext4):
# Определите устройство, к примеру, /dev/sda3
sudo tune2fs -O ^has_journal /dev/sda3
После изменения перемонтируйтеFS (sudo umount /tmp && sudo mount /tmp), чтобы изменения вступили в силу.
Шаг 4: Управление службами
Отключите сервисы, которые не нужны для повседневной работы:
# Список всех активных сервисов
systemctl list-unit-files --type=service --state=enabled
# Пример: отключение Docker, если он не используется
sudo systemctl disable --now docker
Если вы используете графический интерфейс (X/Wayland), убедитесь, что автозагрузка дисплейного сервера не конфликтует с другими дисплейными сессиями. После отключения ненужных служб перезагрузите систему:
sudo reboot
Шаг 5: Настройка свопа
Если объём оперативной памяти ограничен (< 4 ГБ), настройте своп-память и снизьте swappiness:
# Убедитесь, что параметр применён (см. Шаг 2)
echo 'vm.swappiness = 10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# Создайте файл подкачки объёмом 2 ГБ
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
Теперь система будет использовать файл подкачки только при явной нехватке памяти.
Проверка результата
После перезагрузки и выполнения всех шагов повторите команды из Шага 1:
htop && iostat -x 1 2 && free -h
Сравните результаты с исходными показателями. Вы должны увидеть:
- Низкое среднее использование CPU (< 30 %).
- Стабильные показатели ввода-вывода на диске (если раньше были пиковые загрузки, они должны снизиться).
- Увеличение свободной RAM после отключения ненужных служб.
Если результаты не улучшились, вернитесь к шагам, где вы изменяли параметры, и проверьте правильность редактирования конфигурационных файлов.
Возможные проблемы
| Симптом | Причина | Решение |
|---|---|---|
Система стала более медленной после изменения vm.swappiness | Значение слишком низкое для текущих нагрузок | Увеличьте vm.swappiness до 30–40 (sudo sysctl -w vm.swappiness=30) |
iostat показывает высокую активность диска после оптимизации | Фоновые службы продолжают использовать диск (например, обновления apt) | Запустите sudo apt-get autoremove и sudo journalctl -u apt для проверки |
| Своп-память не используется даже при низком объёме RAM | vm.swappiness всё ещё равен 60 или больше | Убедитесь, что /etc/sysctl.conf содержит vm.swappiness = 10 и выполните sudo sysctl -p |
| Отключение сервиса привело к сбоям автозагрузки | Неправильный сервис был выбран | Используйте systemctl status <service> для проверки зависимости перед отключением |
Если после внесения изменений система не реагирует, запустите её в однопользовательском режиме (sudo reboot && sudo su -), проверьте целостность файловой системы (fsck) и восстановите резервную копию /etc/sysctl.conf, если изменения привели к нестабильности.