- Оптимизации GNU / Linux
- ПЕРЕД ПОДОБНЫМИ ДЕЙСТВИЯМИ НАСТОЯТЕЛЬНО РЕКОМЕНДУЮ СОЗДАТЬ ТОЧКУ ВОССТАНОВЛЕНИЯ
- Ускорение загрузки ядра Linux
- Установка ПО
- Для работы с SSD нужно выставить флаги в /etc/fstab
- Отключение защиты от уязвимостей в процессорах Intel
- Оптимизация дисковых операций
- 10 советов по ускорению Ubuntu Linux
- 1. Уменьшите стандартное время загрузки GRUB
- 2. Настройте автозапуск приложений
Оптимизации GNU / Linux
В сети довольно много статей на тему ускорения работы ГНУ систем, начиная от самого Linux ядра, заканчивая разгоном железа. Но не всем они подойдут ввиду разнообразия:
- Семейств дистрибутивов;
- Окружений и ПО;
- Систем инициализации;
- Оборудования.
Встречается настройка ядра через /etc/default/grub, операции с монтированием носителей в /etc/fstab, советы по обращению с ФП, ОЗУ, ZRAM/ZSWAP/ZCACHE, оптимизации пользовательских окружений и ПО. Писать в про всё целиком . . . можно в отдельный справочник. Но ввиду озвученных выше причин, не все пригодятся, не факт, что будут работать, а эффект от иных может быть не заметен вовсе. Поэтому тут я собрал кое-какие варианты.
ПЕРЕД ПОДОБНЫМИ ДЕЙСТВИЯМИ НАСТОЯТЕЛЬНО РЕКОМЕНДУЮ СОЗДАТЬ ТОЧКУ ВОССТАНОВЛЕНИЯ
Возможно, не стоит применять всё сразу, чтоб была возможность выявить возможные неполадки.
Поскольку большинство систем используют systemd, для них актуальны команды
kernel — время загрузки ядра,
userspace — время на загрузку всего остального
- systemd-analyze blame — посмотреть какие именно службы загружаются и сколько времени на это требуется
- systemd-analyze plot >graph.svf— команда создаст svf файл с графиком, откройте его в браузере.
Далее, стоит отключить ненужные службы, список сервисов и описание можно найти в сети, как и другие команды для systemd. Чтобы это сделать нужно ввести
В сети есть статьи по оптимизации systemd и принадлежащих ей служб с описанием, но я не использую сие произведение, поэтому про него писать не стану. Вопрос использования служб индивидуальный.
Ускорение загрузки ядра Linux
Параметры загрузки ядра находятся в файле /etc/default/grub. Изменения нужно внести в значение строки GRUB_CMDLINE_LINUX_DEFAULT (значение в скобках, после знака = )
quiet — тихий вариант загрузки, выводит минимум информации
rootfstype=ext4 — в какую ФС отформатирован корень (в моём случае btrfs)
libahci.ignore_sss=1 — ускоряет загрузку жестких дисков
raid=noautodetect — отключение raid
selinux=0 — система контроля доступа, которая не нужна на домашнем ПК
plymouth.enable=0 — отключает заставку
lpj=0000000 — позволяет задать константу loops_per_jiffy, чтобы ядро её каждый раз не вычисляло. Значение индивидуально для каждого компьютера. Чтобы её узнать, нужно открыть ещё один терминал и там ввести «dmesg | grep ‘lpj=’». Полученное значение скопировать.
В итоге, строка будет иметь примерно такой вид:
GRUB_CMDLINE_LINUX_DEFAULT=»quiet rootfstype=ext4 libahci.ignore_sss=1 raid=noautodetect selinux=0 plymouth.enable=0 lpj=12053560″
Для указания корневого раздела желательно не использовать UUID, быстрее будет, если написать прямо. Добавьте в тот же файл строчку:
GRUB_DISABLE_LINUX_UUID=true
После этой операции нужно обновить конфигурацию GRUB
Установка ПО
Preload — это демон, который считывает статистику часто используемых приложений, и хранит их в кэше, благодаря чему они быстрее запускаются
sudo apt-get install preload
Можно оставить настройки по умолчанию, в файле /var/lib/preload/preload.state информация о работе preload.
cycle — как часто preload будет получать от системы данные об используемых программ и библиотек.
halflife — как часто preload будет сбрасывать старую информацию.
minsize — ограничение на размер программы или библиотеки, которую preload будет обрабатывать.
Я у себя не нашел этой утилиты. Поэтому про её работу и настройку рекомендую почитать в сети, есть материалы
Prelink преобразовывает разделяемые библиотеки и выполняемые файлы таким образом, чтобы уменьшить количество требуемых перераспределений памяти при разрешении зависимостей и, таким образом, ускоряет запуск программ, позволяет прописать связи с библиотеками непосредственно в исполняемый файл, что ускорит запуск приложения. Выполняется это без перекомпиляции приложений.
sudo apt install prelink
В процессе работы копится всяческий мусор. Этот мусор стоит периодически чистить. Я сам постоянно использую Stacer и Bleachbit. Первая умеет много чего, а вторую программу считаю обязательной для любой ОС. Плюс использую команды для удаления зависимостей-сирот. Однако, всё же можно установить для очистки autoclean и autoremove.
Последним оставлю блок про оптимизации работ железа. Сюда стоит включить операции с SSD/HDD и ОЗУ, разгон ОЗУ/видеокарты, кастомные ядра, настройку работы ЦП и видеокарты. Для настройки работы nVidia утилита GWE и родная NVIDIA SERVER SETTING, которая устанавливается вместе с драйвером, для АМД — CoreCtrl, которая, к тому же, позволяет изменить режим работы процессора.
Для работы с SSD нужно выставить флаги в /etc/fstab
ssd, discard (Defaults — этот убираем) — для btrfs.
lazytime (Defaults, noatime — этот убираем) — для Ext4
Если вы уже выставили флаги discard в вашем Fstab, то включать TRIM по расписанию не надо!
На счет TRIM для SSD — довольно неоднозначная вещь. Встречал противоречивые мнения в сети: и что это утилита уже встроена в ядро, что она не работает по умолчанию должным образом, нужно прописывать самому в fstab. Ничего утверждать не буду. Прочитал на этот счет статью, что SSD сами справляются с уборкой мусора, надо всего-лишь держать там достаточно не размеченного пространства, порядка 10-15%. Собственно, на этом я и остановился.
Отключение защиты от уязвимостей в процессорах Intel
Spectre/Meltdown/Zombieload aka MDS (серьезно снижают производительность)
GRUB_CMDLINE_LINUX_DEFAULT=»nopti pti=off spectre_v2=off l1tf=off nospec_store_bypass_disable no_stf_barrier
Оптимизация дисковых операций
Жесткий диск — это самое узкое место любой системы, не только GNU/Linux. Жёсткий диск является самым медленным устройством в компьютере. Если установлен SSD, то это решает многие проблемы, но кое-что всё равно остаётся. Первой оптимизацией является изменение размеров дискового кэша. При операциях копирования или перемещения, данные сначала записываются в оперативную память, а затем кучей скидываются на диск. В результате, особенно при нехватке памяти, это может привести к сильным задержкам. Исправить ситуацию поможет уменьшение дискового кэша до разумной величины. Также стоит уменьшить кэш файловых систем. Открываем /etc/sysctl.conf и в конец добавляем строки:
vm.dirty_bytes = 2097152
vm.dirty_background_bytes = 2097152
vm.vfs_cache_pressure = 50
Прошу обратить внимание на последнюю строку: этот параметр отвечает за кэширование объектов файловой системы в оперативную память. При значении 0, объекты не высвобождаются и так и остаются в оперативной памяти. Чем больше значение, тем чаще ядро будет проводить «зачистку» оперативной памяти. Поэтому если у вас оперативной памяти меньше 2 ГБ, то оставьте значение 50, дабы сократить число дисковых операций в разделе подкачки. Это также полезно в случае если у вас SSD. Но если у вас больше 2 ГБ оперативки, и обычный жёсткий диск, то выставьте значение этого параметра на 1000. Это позволит более агрессивно кэшировать дисковые операции, тем самым повысив быстродействие при достаточном количестве оперативной памяти. По умолчанию значение этого параметра равно 100.
10 советов по ускорению Ubuntu Linux
Вам знакомо то чувство, когда по прошествии какого-то времени Ubuntu начинает тормозить? В этой статье мы собрали десять небольших советов, которые помогут если не вернуть былую скорость, то хотя бы просто заставить систему работать быстрее. Описанные здесь советы вполне могут сработать и на других дистрибутивах Linux, основанных на Ubuntu, вроде Linux Mint, Elementary OS и т.д.
1. Уменьшите стандартное время загрузки GRUB
По умолчанию GRUB даёт 10 секунд на выбор одной из нескольких ОС, вход в режим восстановления и т.д., что достаточно долго. Кроме того, вам придётся сидеть перед компьютером и нажимать на enter, чтобы как можно быстрее загрузить Ubuntu. Немного затратно по времени, не так ли? Разумным решением будет сократить это время. Сначала откроем конфигурацию GRUB:
И поменяем GRUB_TIMEOUT=10 на GRUB_TIMEOUT=2 . Теперь время загрузки сократится до 2 секунд. Почему мы ставим 2, а не 0? В последнем случае мы потеряем возможность выбрать другую ОС или зайти в режим восстановления.
Чтобы применить изменения, используйте эту команду:
2. Настройте автозапуск приложений
Рано или поздно вы начинаете устанавливать приложения. Некоторые из них запускаются при каждой загрузке системы, на что уходит много ресурсов. В итоге на полную загрузку системы уходит всё больше и больше времени. Чтобы исправить это, найдите в поиске «Автоматически запускаемые приложения»:
Здесь вы увидите список приложений, запускаемых при загрузке системы. Подумайте, что из этого не нужно запускать каждый раз и смело удаляйте из автозапуска:
Но что, если вы ничего не хотите удалять? В таком случае вы можете отложить запуск приложения. Таким образом, для загрузки системы будет свободно больше ресурсов, а сами приложения запустятся спустя некоторое время.
Для этого в том же списке выберите нужное приложение, нажмите «Редактировать» и в поле «Команда» допишите в начале команду sleep ; . Например, если вы напишете sleep 20; , то приложение запустится с 20-секундной задержкой.