В сети довольно много статей на тему ускорения работы ГНУ систем, начиная от самого Linux ядра, заканчивая разгоном железа. Но не всем они подойдут ввиду разнообразия:
- Семейств дистрибутивов;
- Окружений и ПО;
- Систем инициализации;
- Оборудования.
Встречается настройка ядра через /etc/default/grub, операции с монтированием носителей в /etc/fstab, советы по обращению с ФП, ОЗУ, ZRAM/ZSWAP/ZCACHE, оптимизации пользовательских окружений и ПО. Писать в про всё целиком . . . можно в отдельный справочник. Но ввиду озвученных выше причин, не все пригодятся, не факт, что будут работать, а эффект от иных может быть не заметен вовсе. Поэтому тут я собрал кое-какие варианты.
ПЕРЕД ПОДОБНЫМИ ДЕЙСТВИЯМИ НАСТОЯТЕЛЬНО РЕКОМЕНДУЮ СОЗДАТЬ ТОЧКУ ВОССТАНОВЛЕНИЯ
Возможно, не стоит применять всё сразу, чтоб была возможность выявить возможные неполадки.
Поскольку большинство систем используют systemd, для них актуальны команды
- systemd-analyze — узнать время загрузки
kernel — время загрузки ядра,
userspace — время на загрузку всего остального
- systemd-analyze blame — посмотреть какие именно службы загружаются и сколько времени на это требуется
- systemd-analyze plot > graph.svf— команда создаст svf файл с графиком, откройте его в браузере.
Далее, стоит отключить ненужные службы, список сервисов и описание можно найти в сети, как и другие команды для systemd. Чтобы это сделать нужно ввести
sudo systemctl disable <имя_службы.service>
В сети есть статьи по оптимизации 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
sudo update-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.
sudo apt autoclean
sudo apt 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 (серьезно снижают производительность)
/etc/default/grub
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.
Комментарии
14:53
> Жёсткий диск является самым медленным устройством в компьютере.
Молча завидую, потому что у меня это мышь и клавиатура. :-D
14:56
15:14
Этот параметр усложнил загрузку добавив к ней 5 лишних секунд.
В остальном без отключения служб время загрузки уменьшилось на 4.3 секунды.
15:18
Рад, если помогло.
15:23
Для оптимизации в Линуксе (Безболезненно) имеет смысл только одно - отключение не нужных, именно Вам Служб и процессов! Поверьте, это даст гораздо Больший Эффект, чем ковыряние руками, которые не оттуда растут - в ЯДРЕ!!! и, сэкономит Вам Кучу нервов и времени!!!)))
16:02
Ждём статьи!
А пока от этой статьи пользы НаМнОгО бОлЬшЕ.
P.S. И вы бы как-то поаккуратнее с обобщениями насчёт рук.
17:42
18:48
зачем о себе так громко?
21:22
21:41
час назад собрал ядро 5.12.8 под своё железо,
чему рад вполне,
и вам желаю.
21:49
21:56
вы я так понял, ко всему прочему телепат и ясновидец раз знаете все мои проекты... какие и когда...
-------
а вы знаете, 5 или 7 лет назад, я бы тоже советовал не ковыряться в ядре,
в тот момент я собирал ядро малины самой малиной.
смысла (в отличии от х86) действительно негусто.
20:25
15:41
ну или 2, дефолтом 5, пять секунд grub ждет Вашего выбора загружаемой OS.
16:10
16:17
17:28
16:13
Для многих это будет очень полезно.
16:18
16:45
Не лучшая идея, так как может флешка изменить /dev/sd*.. а если система на гибком диске то точно юзать UUID, иначе руками писать рут надо будет.
17:23
Нужное дело делаете.
И ждём статью.
17:32
Полезно.
Спсб
...
Поясните кто-нить строку:
>> lazytime (Defaults, noatime - этот убираем) - для Ext4
...
От себя эмоционирую:
SSD + больше оперативки = наше фсё !
17:52
https://comss.pics/image/Usky0q
19:42
https://wiki.archlinux.org/title/Fstab#atime_options
https://wiki.archlinux.org/title/Fstab_(Русский)#Параметры_atime
Там всё подробно.
20:16
Минор дал ссыль (https://comss.pics/image/Usky0q)
Уже прочёл, спсб.
...
Не полезу так глубоко.
Система настроилась сама, пусть так и останется.
SSD очень быстр сам по себе.
20:28
Если хочется большей экономии места, то лучше использовать zstd.
И сжатие лучше, и скорость распаковки выше.
https://github.com/inikep/lzbench/#benchmarks
20:49
Но я не вникал в такие тонкости.
21:03
Ну как современный, лет шесть уже. :)
В ядре ещё с 4-ой какой-то там версии.
21:07
Сколько лет Ext4 ? В нулевые появился формат, но продолжает улучшаться как поддержка в ядре, так и сам формат.
Я не так что-то говорю ?
21:20
Если точнее, то не pamac, а pacman, который предоставляет библиотеку libalpm для сторонних приложений.
Плюс, Arch Linux одной из первых стала хранить пакеты в zst.
> Я не так что-то говорю ?
Нет, скорее я. :)
Просто в IT такой быстрый прогресс, что шесть лет кажутся уже стариной.
08:10
Только одно уточнение:
Ztsd - "современный" - в том плане, что AUR на него недавно перешёл (не весь сразу, понятно).
...
И место на диске меня (как и многих, полагаю) не очень интересует в сравнении со скоростью.
21:10
01:28
Так и не понял как Canonical собирала snap'ы с Zstd, которые по степени сжатия и скорости запуска уступали LZO
18:12
Я интересовался - что за параметр?..
18:56
Я с этого и начал, что материалы в сети есть.
https://en.wikipedia.org/wiki/Stat_(system_call)#LAZYTIME
18:26
Spectre/Meltdown/Zombieload нужно mitigations=off
Stacer и Bleachbit не рекомендую вообще
Systemd нужно три команды: sudo systemctl stop/disable/mask "name".service
Для работы с SSD нужно в (fstab) :noatime,nodiratime,nobarrier,commit=300, значение commit=300 или больше выставлять только с ИБП
Жесткий диск рекомендую
vm.swappiness=1
vm.vfs_cache_pressure=50
vm.dirty_writeback_centisecs=15000
18:54
+
18:37
19:05
>>... не факт, что будут работать, а эффект от иных может быть не заметен вовсе.
темпы в ОЗУ - первое что нужно.
скорость tmpfs на два порядка выше любого винта
+ уменьшение износа SSD
19:23
Ждём твоё экспертное мнение, с указанием как надо.
19:29
пожайлуста:
первое что нужно - темпы в ОЗУ
скорость tmpfs на два порядка выше любого винта
+ уменьшение износа SSD
PS. я с вами на брудершафт не писал, будьте любезны.
22:38
07:43
важные файлы дублированы на нескольких винтах локально и разумеется в облаке.
---------
tmpfs-а половина ОЗУ, в моем случае 4 гига, а хотелось бы 16.
типическое заполнение ~300 метров.
http://i.piccy.info/i9/c93010f5a2dacc84632dd5fdeb312196/1622349991/69583/1431262/464492021_05_30_06_43_21.jpg
09:21
так точно кэп!
http://i.piccy.info/i9/2594451c192a2b40027251d4ce5662a8/1622355663/75803/1431265/ssd20210530.jpg
19:18
19:23
19:46
20:50
21:23
Пахнет виндовскими замашками, там всегда так говорят....))) Автор не уверен просто.
21:40
Когда лезешь в работу ядра и монтирования разделов, то всегда есть шанс что-то поломать. Статья в информационных целях.
У себя-то я их применил, кроме prelink.
21:51
22:07
21:36
21:41
21:45
22:09
01:54
04:46
К остальным вроде нет претензий) они из коробки как часики работают...
09:30
Но здесь далеко не всё. А так да, кому хочется и что-то не устраивает, тот может покопать.
10:21
12:53
11:23
vm.vfs_cache_pressure=1000
vm.min_free_kbytes=500000
vm.dirty_background_ratio=5
С перечисленными в статье и комментах параметрами при очень активной дисковой работе периодически подвисало
14:31
14:52
20:38
Тоже такое читал, на первом Самсунг в родной утилите для винды это видел, что место там зарезервировано уже.
Надеюсь, это для большинства современных актульно. По крайней мере, для недешманских.
21:22
это для систем не знающих о команде trim от слова "совсем"
например win xp.
16:19
18:18
15:51
Обновление системы
Настройка
Компоненты из CachyOS
Полезные утилиты
Оптимизация GNOME
Оптимизация KDE
Повышение производительности памяти
Оптимизация загрузки ядра
Очистка системы
https://habr.com/ru/articles/813829/
16:17
16:45
Спортивное лежание на диване — наше всё! 3 лучших упражнения — сон, еда и отдых
16:35
16:47
20:53
21:02
Выбираю теперь по умолчанию xfce, но на 6-ю Плазму тоже можно глянуть. Там предустановлен пакет fastfetch в ливе и на флэшке было 1140+ пакетов. Не слабо так …
21:05
18:12
https://postimg.cc/Z0N2D3fb
Потом надо будет лог посмотреть там
20:30
20:56
20:59
Вот один из них: https://ventureo.codeberg.page/
Возможно с него все и содрали, у нас так не делают.
...
Один из представителей новой касты повеселил вчера - https://www.youtube.com/watch?v=YRwlK3cVjbI&t=431s
Противоречие на противоречии, крутит вертит рабочими столами перед разинувшими рты "новобранцами", арч видите ли у него супер стабильный и ни разу не упадет, как винда после обновления. Ну-ну...)))
21:26
09:34
Автор там много раз произнёс "бустит продуктивность" и, кажется, он свой ролик тоже подал со скоростью 1,5. Не расходятся слова с делом, но без этого всю воду вокруг рекламного контента не выдержать.