TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #1260 8.21K
Здесь я рассказал, как просто управлять производительностью сервера с помощью governors.

🔤🔤🔤🔤🔤🔤🔤
ㅤ
Но есть еще один способ: Прямое управление частотой.

Дело в том, что governor задает только скорость нарастания и убывания частоты, в зависимости от нагрузки. Сами частоты заданы в файлах:

/sys/devices/system/cpu/cpu0/cpufreq/

scaling_min_freq
scaling_cur_freq
scaling_max_freq

Но и пределы частоты тоже можно менять.

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

/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

(это для нулевого ядра)

У меня на ноуте, например, 1350000 1200000 1000000

Посмотреть частоты можно здесь:

cpuinfo_min_freq - минимальная частота ядра
cpuinfo_cur_freq - текущая
cpuinfo_max_freq - максимальная

👆 Надеюсь, всем понятно, что разогнать проц данным способом не получится.

Таким образом, командой типа:

cp cpuinfo_max_freq scaling_min_freq

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

Кстати, повышать частоты требуется не всегда.

Приведу пример:

У меня работает роутер на мини-PC. Если использовать его только как роутер - нагрузка максимум 5%.

Я поставил туда торрент-качалку. А она может загрузить проц, даже если использовать nice. Но я задал минимальную частоту в качестве максимальной:

cp cpuinfo_min_freq scaling_max_freq

Теперь мини-PC холодный, даже если прикидывается сервером и работает на 100% (В полку).

Код для установки максимальной производительности получается несколько проще, чем с governor:

#!/bin/bash
declare -a KEEP_MINFREQ
declare DIR_PREFIX=/sys/devices/system/cpu
declare -i NPROC=$(nproc) # число ядер (процессоров)

# Keep current setting
I=NPROC
while ((I--));do
KEEP_MINFREQ[$I]=$(cat "$DIR_PREFIX/cpu${I}/cpufreq/scaling_min_freq")
done

# Set
I=NPROC
while ((I--));do
# Поднимаем минимальную частоту до максимума
cp "$DIR_PREFIX/cpu${I}/cpufreq/cpuinfo_max_freq" "$DIR_PREFIX/cpu${I}/cpufreq/scaling_min_freq"
done

#Здесь ВАШ код

sleep 10

##############

# Restore settings
I=NPROC
while ((I--));do
echo "${KEEP_MINFREQ[$I]}">"$DIR_PREFIX/cpu${I}/cpufreq/scaling_min_freq"
done

Всем стабильных серваков!

🛠 #cpu #performance #frequency #governor
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
More from @bashdays
  1. Sep 25, 2026ИИ-агент может быть у каждого: создать персонального помощника можно без настройки серверо…
  2. Sep 25, 2026🚀 Zabbix 8.0 на подходе. Запланируйте обучение команды уже сейчас В ближайшее время ожида…
  3. Sep 24, 2026✨ Как настроить PostgreSQL для продакшен-нагрузок При переходе к продакшен-нагрузкам важно…
  4. Sep 24, 2026Post #1565
  5. Sep 24, 2026Траблшутинг - мастхэв компетенция для инженера В Rebrain траблшутинги проводят уже несколь…
  6. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →