Сразу замечу, что настройки привожу для процессоров Intel. Для AMD они похожи, но отличаются. Будьте внимательны!
И еще один момент: Указанные ниже действия не имеют отношения к разгону процессора. Поэтому вы не потеряете гарантию на оборудование, применяя их.
Немного теории
Не стоит удивляться тому, что изначально и практически во всех операционных системах состояния процессора настроены вовсе не на максимальную производительность.
Виной тому то, что часто требуется учитывать не только производительность, но и энергопотребление. Чем выше частоты работы процессора, тем больше он потребляет энергии.
Потому придумано несколько механизмов снижения потребления электроэнергии в "простое".
Во-первых операционная система старается понизить частоту работы ядер процессора, в зависимости от нагрузки. Когда ОС считает, что нагрузка низкая, понижает частоту ядер процессора. А во-вторых, если ОС считает, что можно обойтись меньшим количеством ядер, чем есть в процессоре, он начинает вводить "ненужные ядра" в состояние простоя или вовсе отключает.
И ничего плохого в этом нет. Именно такими методами ваш ноутбук позволяет вам работать на одном заряде батареи значительно дольше.
Однако, не одними ноутбуками живет мир ИТ. На серверах, да и во многих сценариях подобное поведение ОС оказывается конкретно вредительским.
Пара примеров:
1. Вы в расслабленной манере пишите небольшую статейку в текстовом редакторе, а параллельно проверяете указываемые факты, выискивая нужное на просторах интернета.
2. Сервер используется в качестве сервера приложений 1С в трехзвенке.
В обоих случаях нагрузка на процессор стремится к нулю с небольшими нечастыми всплесками. И так как на вывод процессорных ядер из состояния сна, как и повышение частоты их работы требуется небольшое, но все же заметное, время, ОС не успевает за пичками нагрузки. Они появляются и быстро исчезают, и поэтому процессор постоянно работает на пониженных частотах, а иногда и еще с отключенной частью ядер.
Общая производительность системы в такой ситуации снижается в разы, а иногда на порядок. Хороший процессор, а работает как посредственный. Обидно!
А пользователь замечает странную ситуацию: Программы вроде как работают быстро, но компьютер как-то замедленно реагирует на переключение между окнами программ и иногда подозрительно задумывается. Это бесит!
Что тут можно сделать
В Debian Linux можно привести настройки процессора к максимальной производительности в два шага:
Первый. Запретить переход ядер процессора в состояние простоя / энергосбережения.
cstates — это такие режимы пониженного энергопотребления, в которые имеет право переходить процессор
Список: https://gist.github.com/wmealing/2dd2b543c4d3cff6cab7#file-c-states-md
Отключаем эти режимы напроч (для процессоров Intel):
Редактируем файл /etc/default/grub, добавляя параметры в директиву GRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT="... intel_idle.max_cstate=0 processor.max_cstate=0"
Здесь "..." обозначают те параметры, что уже были указаны в этой строке. Их удалять не надо, не просто же так они там указаны. Принцип добавления: Параметры указываются через пробел внутри кавычек.
Еще полезно отключить патчи узязвимостей процессора в ядре и дополнительно поднастроить, раз уж залезки в конфигурационный файл GRUB.
Далее даем команду, чтобы GRUB принял изменение настроек во внимание и использовал при включении компьютера:
sudo update-grub
Все. С момента перезагрузки компьютера процессор прекратит переводить свои ядра в энергосберегающий режим и отключать их тоже прекратит.
Теперь нам нужно настроить ОС так, чтобы процессор не понижал частоту своих ядер, когда система считает, что нагрузка низкая.
Второй шаг. Фиксируем частоту ядер процессора на максимально доступной.
В Debian Linux, как и в других ОС этого семейства подобное реализуемо многими способами. Опишу тот, что предпочитаю сам.
Устанавливаем утилиты cpufrequtils:
sudo apt install cpufrequtils
После этого остается отредактировать файл настройки и перезапустить демона этих утилит:
sudo nano /etc/default/cpufrequtils
Здесь ENABLE=true - говорит демону, что настройки надо применить, а не пользоваться дефолтными. Параметры MIN_SPEED и MAX_SPEED - как не трудно догадаться, задают нижнюю и верхнюю планку частот работы ядер процессора. А параметр GOVERNOR="performance" - требует забыть про низкие частоты и пользоваться максимальным пределом. Не забудьте сохранить изменения.
Тонким местом в этих настройках является является то, что значение параметров MIN_SPEED и MAX_SPEED нельзя брать "с потолка". Они должны соответствовать физическим (железным) параметрам вашего процессора и должны быть указаны в герцах. Мегагерцы и гигагерцы тут неуместны.
Физические параметры предельных частот процессора можно посмотреть в BIOS, если вы знаете о чем я. Или прямо в файловой системе Debian Linux. Ибо "все есть файл".
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
В параметры MIN_SPEED и MAX_SPEED заносим именно значение cpuinfo_max_freq, чтобы компьютер и не думал понижать частоту.
На этом все. Осталось лишь перезагрузить ОС:
sudo init 6
После перезагрузки процессор навсегда прекратит снижать частоту своей работы и отключать часть своих ядер.
Система станет отзывчивей на действия пользователя, а количество непонятных фризов в работе заметно сократится.
Что я не рекомендую:
1. Делать такие настройки на обычных (не игровых) ноутбуках. Система охлаждение таких ноутбуков вполне может быть не рассчитана на постоянную работу процессора на максимальных частотах. Ноутбук может выйти из строя. Никакая производительность не стоит потери компьютера в самый неподходящий момент.
2. Применять данные настройки на серверах, если ваш работодатель озабочен энергопотреблением ЦОД. Потребление заметно вырастет.
3. Применять данные настройки на круглосуточно работающих серверах и СХД, от которых и не требуется мгновенной реакции и стабильно высокой производительности. Например файловый сервер резервного копирования или CХД-хранилище резервных копий. Это не имеет смысла, и немного уменьшает сроки эксплуатации до выхода из строя.
Интересные находки:
Иногда, в ситуации, когда по какой-то причине система охлаждения ЦОД не справляется или вышла из строя, уместно наоборот, принудительно снизить частоты работы процессоров серверов и включить возможность перехода ядер в энергосберегающие состояния. Тем самым тепловыделение ЦОД снизится, и может позволить пережить без потерь эти тяжелые времена.
_______________________________________________________________________________
Если статья оказалась полезной, то возможно и другие статьи моего цикла оптимизаций производительности системы вам пригодятся: