Ubuntu — одна из самых популярных дистрибутивов Linux, универсальна и подходит как для десктопов, так и серверных систем. Однако по умолчанию Ubuntu настроена на максимальную совместимость и комфорт, а не на максимальную производительность. Оптимизация системы позволяет улучшить скорость работы, снизить нагрузку на аппаратные ресурсы и продлить срок службы оборудования.
Подписывайтесь на мой канал!
В этой статье рассмотрим ключевые методы повышения производительности Ubuntu: настройки ядра Linux, управление кэшированием и регулярную очистку системы.
1. Оптимизация настроек ядра Linux
Ядро Linux — это сердце операционной системы. Конфигурирование параметров ядра позволяет изменить поведение системы на уровне ресурсов, управляющих процессами, памятью, вводом-выводом и другими подсистемами.
1.1. Просмотр и временное изменение параметров с помощью sysctl
Параметры ядра доступны через интерфейс /proc/sys и могут быть изменены с помощью утилиты sysctl.
Пример: ускорение работы с сетевыми соединениями
Чтобы изменения сохранились после перезагрузки, внести их в файл /etc/sysctl.conf или создать отдельный конфигурационный файл в /etc/sysctl.d/.
1.2. Настройка поведения планировщика ввода-вывода (I/O scheduler)
Ubuntu по умолчанию может использовать планировщики ввода-вывода cfq, deadline или noop.
Чтобы проверить текущий планировщик на диске /dev/sda:
Пример вывода: [deadline] cfq noop — активен планировщик deadline.
Для изменения планировщика:
Для NVMe-накопителей эффективен none или mq-deadline, для SSD лучше отключить сложные планировщики, т.к. у них своя внутренняя оптимизация.
1.3. Уменьшение задержек при работе с процессами
Параметры, связанные с планировщиком процессов и приоритетами:
- kernel.sched_min_granularity_ns — минимальная гранулярность тайм-слайса
- kernel.sched_latency_ns — общая длина периода планирования
- kernel.sched_wakeup_granularity_ns — минимальный интервал для пробуждения задач
Например:
Эти значения можно экспериментально скорректировать для улучшения отзывчивости или пропускной способности.
1.4. Настройки виртуальной памяти (swap)
Swap — область на диске, которая используется при нехватке оперативной памяти. Чем активнее система использует swap, тем медленнее она работает.
Параметр vm.swappiness контролирует агрессивность использования swap:
- Значение 60 — стандартное
- Можно уменьшить до 10-20 для снижения использования swap и ускорения работы
Добавить в /etc/sysctl.conf:
Также имеет смысл отключить swap при достаточном объеме RAM:
Но это рекомендуется только при уверенности, что RAM хватает.
2. Оптимизация кэширования
Linux использует кеширование для ускорения доступа к данным в памяти. Это полезно, но иногда слишком большое кэширование может "забирать" всю оперативную память.
2.1. Настройки dirty pages
Система буферизует записи в память (dirty pages) перед записью на диск. Контролировать этот процесс позволяют параметры:
- vm.dirty_ratio — максимальный процент памяти, который может быть заполнен грязными страницами
- vm.dirty_background_ratio — порог, при котором начинается фонная запись
Рекомендуется уменьшить, чтобы снизить задержки при записи данных:
Аналогично можно применять параметры в процентах времени с помощью
- vm.dirty_expire_centisecs — после сколько времени dirty pages считаются устаревшими
- vm.dirty_writeback_centisecs — интервал фоновой записи
2.2. Очистка кэша вручную
Если система начала тормозить из-за большого объема кеша, можно чистить кеш вручную:
Где:
- 1 — очистить pagecache
- 2 — очистить dentries и inodes
- 3 — очистить все вместе
Эти действия временные, кэш заполнится снова.
3. Очистка системы для повышения производительности
Захламлённая система — одна из причин замедления. Скопившиеся пакеты, логи, временные файлы и устаревшие зависимости могут серьёзно сказаться на быстродействии.
3.1. Очистка неиспользуемых пакетов и зависимостей
Удаляем пакеты, которые были установлены как зависимости и сейчас не нужны:
Очистка кэша скачанных пакетов:
Удаление устаревших пакетов и исправление ошибок:
3.2. Очистка старых журналов
Логи могут занимать много места, иногда зубодробительно много. Используйте logrotate или очищайте вручную:
3.3. Удаление временных файлов
Удаляем временные файлы:
Можно использовать утилиту `bleachbit` с графическим интерфейсом.
4. Полезные инструменты и советы
4.1. Мониторинг ресурсов
Для выявления узких мест используйте системные утилиты:
- top, htop — мониторинг загрузки CPU, памяти, процессов
- iotop — мониторинг ввода-вывода
- vmstat — статистика памяти и устройств
- free -h — доступная память
4.2. Оптимизация автозагрузки
Отключите ненужные службы:
Для графической среды используйте gnome-session-properties или аналоги.
4.3. Использование легковесных альтернатив
- Легковесные десктопные среды: XFCE, LXDE, MATE вместо GNOME
- Минималистичные менеджеры окон: i3, Openbox
Заключение
Оптимизация производительности Ubuntu — комплексная задача, требующая внимания к системным настройкам ядра, управлению памятью и кэшированием, а также регулярной очистке от мусора и устаревших данных. Правильные настройки позволяют улучшить отзывчивость, повысить скорость работы приложений и продлить срок службы оборудования.
Всегда перед внесением изменений делайте резервные копии важных данных и системных конфигураций!