Найти в Дзене
OVERCLOCKERS.RU

Как разогнать Linux одним файлом

Оглавление

Линуксы испокон веков в целом были хуже Windows для большинства людей, хотя что я рассказываю, и сейчас в принципе ничего не изменилось кардинально, разве что Microsoft начали откровенно ломать "форточки" начиная с 11 версии, и монополизировать компьютеры пользователей такими вредоносными технологиями как Secure Boot...

Хотя если посмотреть на ситуацию в плане производительности, становится ясно, что Microsoft нужно очень долго и упорно ломать свою операционную систему, чтобы достичь изначально паршивого уровня Linux:

-2

Но сейчас речь не про Windows, а про разгон Linux, каким образом вообще это сделать? Всё просто, сейчас мы будем экспериментировать с настройками планировщика ЦП, и не надейтесь что в линуксах можно просто переключить галочку как в Windows, и всё прекрасно будет работать, нет, нужно танцевать с бубном терминальным.

Так вот, первый, и очевидный способ "разогнать вечно дряхлого пингвина" это потанцевать с утилитой cpufreq, достаточно просто переключить "планировщик ЦП" в режим performance, если такой конечно доступен:

-3

И делать это нужно для каждого ядра в отдельности (SMT тоже считается ядром, ох уж эти линуксы):

Однако есть способ проще, можно изменить всего одно значение в файле "/sys/devices/system/cpu/cpufreq/ondemand/up_threshold", по умолчанию оно обычно выставлено в 60, снижаю до 5 и получаю такой же эффект, как и при возне через cpufreq утилиту:

Это значение отвечает за процент использования ядра, после которого начинается повышение частоты, по умолчанию в линуксах только при 60-100% нагрузке на ядро начинается повышение частот (вот и весь "секрет" мнимой энергоэффективности линуксов на ноутбуках), и если снизить это значение до 5%, то уже при незначительной нагрузке будут повышаться частоты.

Ну а режим работы "performance" просто повышает частоты ядер до максимальных независимо от нагрузки.

Стоит ли говорить, что оба варианта ужасно отражаются на энергоэффективности системы?

А ещё есть нюанс, эти все функции не работают в виртуальных машинах, да и на реальных ПК тоже может не быть контроля над работой ЦП в зависимости от конфигурации, так что такой "разгон линукса" доступен не всегда:

-6

Ну что, с особенностями разобрались, пришло время провести сравнительные тесты.

Тестовая конфигурация состоит из Ryzen 7 2700X (XFR Boost отключен, максимальная частота всех ядер 3.6 ГГЦ), 64 ГБ ОЗУ 3333 МГц и GeForce GTX 1070 8 ГБ.

В качестве операционных систем выступают Windows 7/10 и Chimbalix 24.3 Alphachi (Linux 6.9.10-1 Liquorix).

Сбор результатов производительности - MSI Afterburner / Mangohud.

Игра - Forward to the Sky (Windows / Linux версии).

Wine Proton LG v9.5.1 (9.0).

-

Linux

Начнём собирать результаты в среде Linux, ибо мне так проще.

Запускаем Windows версию игры с оверлеем Mangohud через встроенный в дистрибутив Wine Proton LG:

Итого имеем в среднем 38.6 FPS со стандартными линуксоидными настройками up_threshold, и 43.5 FPS со значением 5% вместо 60%:

Забегая вперёд, если переключить "планировщик" в режим performance, то частота ядер перестаёт управляться значением up_threshold, но так получилось выжать 44.1 FPS:

-9

Далее нативная линуксоидная версия игры:

При значении up_threshold на стандартном уровне имеем 41.2 FPS, при значении 5 получилось всего 42 FPS, в режиме performance 43.6 FPS, так уж получилось, что нативная Linux версия игры работает хуже, чем Windows версия запущенная через Wine, забавно:

Особо внимательные могли заметить, что нативная Linux версия игры имеет артефакты графические (жирные полосы теней на стыках геометрии), которых нет у Windows версии игры, то есть она не только медленнее игры предназначенной для Windows, но и работает хуже...

Осталось собрать результаты в среде Windows и сравнить.

Windows

Так как практически все игры разрабатывают именно для Windows, то и с тестами никаких сложностей нет, просто запускаю как есть и собираю результаты.

В старой доброй Windows 7 имеем средний FPS на уровне 51.2, причём частота ядер всегда максимальная, ибо не работают функции энергосбережения, скорее всего из-за отключенного XFR Boost, ну или просто не установлены какие-то драйверы необходимые для функций энергосбережения, так что имеем только один результат:

Далее чистая Windows 10, с ней уже работают функции энергосбережения даже при отключенном XFR Boost, и средний FPS на уровне 53.4:

Теперь отключим функции энергосбережения, сделаем аналог режима "performance", и получаем 54.5 FPS:

Почему я не переключал план одной галочкой в параметрах Windows? На самом деле это можно было сделать, но там кроме функций энергосбережения ЦП ещё и масса других параметров изменяется, чего я не хотел допускать.

Параметры работы PCI-E интерфейса в линуксе я не трогал (если вообще можно трогать), когда Windows даже такие параметры изменяет при переключении плана производительности, вот что называется настоящий "User Expirience", один клик и всё настроилось, а не вон то всё дерьмо с терминалом в линуксах странное и непонятное большинству людей...

-

Результаты

Пришло время отправить результаты в наглядную таблицу, чтобы не перегружать количеством информации, оставлю в таблице только результаты "как есть", и в режиме "performance", то есть обычный результат и максимальный полученный.

Что тут сказать, "дряхлого пингвина" сколько не пинай - как птица не полетит, увы... Причём Windows версия игры запущенная через Wine Proton показала более высокую производительность, чем линуксоидная нативная, ну а Windows так и остаётся недосягаемой:

-15

Да, пляски с бубном могут сократить разрыв, и Linux уже не так печально выглядит по сравнению с Windows, но не стоит забывать, у меня сейчас кастомное ядро линукса, которое быстрее обычного:

-16

Такие вот результаты получились, думаю есть смысл сделать костыль для новой версии дистрибутива Chimbalix, чтобы управлять работой процессора без танцев с бубном в терминале...

«Linux бесплатен, только если ваше время и труд не имеют ценности», этим всё сказано.

Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.

-17

📃 Читайте далее на сайте