Опубліковано 19 липня19 лип Адміністратор У мережі досить багато статей на тему прискорення роботи ГНУ систем, починаючи від самого ядра Linux, закінчуючи розгоном заліза. Але не всім вони підійдуть через різноманітність:Сімейств дистрибутивів;Оточень та ПЗ;Систем ініціалізації;Устаткування.Зустрічається налаштування ядра через /etc/default/grub , операції з монтуванням носіїв в /etc/fstab , поради щодо поводження з ФП, ОЗУ, ZRAM/ZSWAP/ZCACHE, оптимізації користувацьких оточень та ПЗ. Писати в все цілком . . . можна окремий довідник. Але через озвучені вище причини, не всі стануть у нагоді, не факт, що працюватимуть, а ефект від інших може бути не помітний зовсім. Тому тут я зібрав деякі варіанти.ПЕРЕД ПОДІБНИМИ ДІЯМИ НАСТОЙЛИВО РЕКОМЕНДУЮ СТВОРИТИ ТОЧКУ ВІДНОВЛЕННЯМожливо, не варто застосовувати все одночасно, щоб була можливість виявити можливі неполадки.Оскільки більшість систем використовують systemd, для них актуальні командиsystemd-analyze — дізнатися час завантаження kernel - час завантаження ядра, userspace - час на завантаження всього іншогоsystemd-analyze blame - подивитися які саме служби завантажуються і скільки часу на це потрібноs ystemd-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 - відключення raidselinux =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/fstabssd, discard (Defaults – цей прибираємо) – для btrfs.lazytime (Defaults, noatime - цей прибираємо) - для Ext4Якщо ви вже виставили прапори discard у вашому Fstab, то вмикати TRIM за розкладом не треба!На рахунок TRIM для SSD досить неоднозначна річ. Зустрічав суперечливі думки в мережі: і що ця утиліта вже вбудована в ядро, що вона не працює за умовчанням належним чином, потрібно прописувати самому fstab. Нічого стверджувати не буду. Прочитав з цього приводу статтю, що SSD самі справляються із прибиранням сміття, треба лише тримати там досить не розміченого простору, порядку 10-15%. Власне, на цьому я зупинився.Відключення захисту від уразливостей у процесорах IntelSpectre/Meltdown/Zombieload aka MDS (серйозно знижують продуктивність)/etc/default/grubGRUB_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 = 2097152vm.dirty_background_bytes = 2097152vm.vfs_cache_pressure = 50Прошу звернути увагу на останній рядок: цей параметр відповідає за кешування об'єктів файлової системи на оперативну пам'ять. При значенні 0 об'єкти не вивільняються і так і залишаються в оперативній пам'яті. Чим більше значення, тим частіше ядро буде проводити "зачистку" оперативної пам'яті. Тому якщо у вас оперативної пам'яті менше 2 ГБ, то залиште значення 50 , щоб скоротити кількість дискових операцій у розділі підкачування. Це також корисно якщо у вас SSD. Але якщо у вас більше 2 ГБ оперативної пам'яті, і звичайний жорсткий диск, то виставте значення цього параметра на 1000. Це дозволить агресивніше кешувати дискові операції, тим самим підвищивши швидкодію при достатній кількості оперативної пам'яті. За промовчанням значення цього параметра дорівнює 100.
Для публікації повідомлень створіть обліковий запис або авторизуйтесь