С недавнего времени я являюсь обладателем процессора AMD Ryzen 7 6800H в составе ноутбука. Камень, конечно, быстрый, встройка AMD Radeon 680M позволяет в большинстве случаев обойтись без дискретной GPU. Но одна вещь меня в этом ЦП очень удивила, и, что преуменьшать, шокировала: если нагрузить на 100% все ядра процессора, его температура доходит до 93-95°C! Я с детства привык, что любое превышение по t ЦП более 75°C – плохо, однако инженеры AMD считают иначе, уверяя что температуры Ryzen 7 доходящие до 95°C – абсолютная норма и они специально спроектированы для работы на такой высокой температуре. Но и физику никто не отменял, и деградацию кремния на высоких температурах тоже. Как бы там ни было, температуру захотелось понизить, и сделать это в Arch Linux и Manjaro очень просто.
Установка RyzenAdj
Чтобы иметь возможность менять параметры работы процессоров AMD Ryzen, нужно установить специальную утилиту RyzenAdj. PKGBUILD, позволяющий это сделать быстро и просто, есть в AUR. Ставим с помощью любого aur-хелпера:
paru -S --noconfirm ryzenadj-git
Я не помню ставит ли утилита какие-нибудь dkms-модули, но если да, стоит перед продолжением перезагрузиться.
Теперь осталось ограничить максимальную температуру процессора нужным нам значением, за это отвечает параметр –tctl-temp. Я решил ограничить температуру своего Ryzen 80°C, для этого выполнил в консоли простую команду:
sudo ryzenadj --tctl-temp=75
Эту строчку можно поместить в crontab для автоматического применения после перезагрузки. Так же рекомендую создать правило, периодически её применяющее, т.к., например, изменение режима энергопотребления системы её сбивает. Я настроил на применение каждые 5 минут с помощью cronie.
Готово! Теперь температура процессора никогда не превысит 80 градусов цельсия. Чем мы жертвуем? Производительностью, конечно же. Теперь при температуре 80°C процессор начнёт понижать тактовые частоты ядер, не допуская превышения своей температуры, тем самым понижая свою производительность.
Сохраняем установленное значение после перезагрузки
Осталось сделать так, чтобы установленное значение сохранялось после перезагрузки системы. Используем системный планирощик Cron. Открываем для редактирования:
sudo EDITOR=nano crontab -e
Помещаем туда строку
@reboot ryzenadj --tctl-temp=75
*/5 * * * * ryzenadj --tctl-temp=75
Сохраняем изменения и закрываем редактор: CTRL+O -> ENTER -> CTRL+X. Готово.