Перейти до змісту
View in the app

A better way to browse. Learn more.

Файна Україна

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Оптимізація GNU / Linux

Рекомендовані відповіді

Опубліковано
  • Адміністратор

У мережі досить багато статей на тему прискорення роботи ГНУ систем, починаючи від самого ядра Linux, закінчуючи розгоном заліза. Але не всім вони підійдуть через різноманітність:

  1. Сімейств дистрибутивів;

  2. Оточень та ПЗ;

  3. Систем ініціалізації;

  4. Устаткування.

Зустрічається налаштування ядра через /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  -  відключення 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.

Для публікації повідомлень створіть обліковий запис або авторизуйтесь

Акаунт

Навігація

Пошук

Пошук

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.