Главная >> Инструкции >> Температура видеокарты в Linux

Температура видеокарты в Linux

В одной из предыдущих статей я рассказывал, как посмотреть температуру процессора в Linux. Для этих целей можно использовать утилиту sensors, а для просмотра более подробной информации в графическом интерфейсе есть psensor. За температурой видеокарты тоже нужно следить. Обычно, нагрев видеокарты можно отследить в программах для её тестирования, например в том же Unigine Heaven и в других подобных продуктах, но есть ещё один способ.

Температуру видеокарт Nvidia в Linux можно посмотреть с помощью утилиты, поставляемой вместе с проприетарными драйверами. С её же помощью можно настроить обороты кулера на видеокарте. Таких утилит на самом деле несколько. Рассмотрим их в этой статье.


Содержание статьи

Температура видеокарты в Linux

1. Утилиты sensors и psensor

Набор программ sensors позволяет отображать не только температуру процессора, но и видеокарты. Здесь она отображается как PCI Adapter, однако иногда в этом пункте может отображаться и температура процессора, поэтому будьте внимательны и посмотрите другие способы. Сначала надо установить lm_sensors, откройте терминал и наберите:

sudo apt install lm_sensors

Затем необходимо обнаружить все сенсоры в системе:

sudo sensors-detect

Читайте более подробно об этом в статье про температуру процессора. А сейчас мы посмотрим температуру:

sensors

Или в графическом интерфейсе:

psensor

2. Утилиты Nvidia

Для этого пункта необходимо, чтобы были установлены проприетарные драйверы. Чтобы посмотреть текущую температуру видеокарты, откройте утилиту Nvidia Settings из главного меню системы и перейдите на вкладку Thermal Settings:

Здесь в графе Temperature вы увидите текущую температуру видеокарты. Другой способ посмотреть температуру - утилита nvidia-smi. Она работает только через терминал:

nvidia-smi

Здесь вы увидите количество оборотов кулера и текущую температуру видеокарты. А ещё можно посмотреть только температуру:

nvidia-smi -q -d temperature

Настройка кулера видеокарты

Для того чтобы настроить частоту оборотов кулера, надо использовать утилиту Nvidia Settings. Сначала выполните:

sudo nvidia-xconfig -a --cool-bits=28

Затем установите нужное число оборотов кулера, например 90 процентов:

nvidia-settings -a '[gpu:0]/GPUFanControlState=1' -a '[fan:0]/GPUTargetFanSpeed=90'

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

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

8 комментариев к “Температура видеокарты в Linux”

  1. Статичная скорость кулера это костыль,лишний шум в общем ужас, лучше использовать специализированный софт и настроить обороты согласно температурам. У карт от зеленый в драйверах есть баг (по другому назвать я это не могу) видиокарта которая умеет работать на пасиве постоянно держит высокие частоты тем самым греется, в этом случае если нужная тишина то можно просто заблокировать уровень производительности на самом минимальном. "options nvidia NVreg_RegistryDwords="PowerMizerEnable=0x1; PowerMizerDefaultAC=0x3;" >> /etc/modprobe.d/99-nvidia-registry.conf" Единственный минус если нужна будет вся мощь то придется делать ребут. Я специально брал игровую карту которая без проблем будет работать в простое без включения вертушек, и включать их только при нагрузке но в лине все как всегда)))

    Ответить
  2. Автор пишет:
    "Для того чтобы настроить частоту оборотов кулера, надо использовать утилиту Nvidia Settings. Сначала выполните:
    sudo nvidia-xconfig -a --cool-bits=28"

    Зачем --cool-bits=28?
    Достаточно: --cool-bits=4, описание тут:
    https://download.nvidia.com/XFree86/Linux-x86_64/450.57/README/xconfigoptions.html

    Ищем на странице:
    "Option "Coolbits" "integer"

    When "4" (Bit 2) is set in the "Coolbits" option value, the nvidia-settings Thermal Monitor page will allow configuration of GPU fan speed, on graphics boards with programmable fan capability."

    После выставления --cool-bits иксы надо перезапустить, ну, или просто комп перезагрузить.
    После этого в графическом интерфейсе nvidia-settings в разделе "Thermal Settings" появится чекбокс, установив который, можно в ручную устанавливать обороты вентилятора, просто двигая бегунок мышкой, или вписав нужное число в поле ниже и нажав Apply.

    Следует отнестись к этому с ОСОБОЙ ОСТОРОЖНОСТЬЮ И ВНИМАНИЕМ! Я не уверен, что в биосе видео карты есть защита от дурака, и она повысит обороты автоматом при достижении критической температуры. Сам не проверял, кому охота, отпишитесь потом, выжила видюшка или нет =)

    Кому лень руками, ниже скриптик, найденный на просторах интернета, хотя, ПО от производителя и само хорошо регулирует обороты, но, всё же есть косяки, из-за которых приходится использовать скрипты.

    #!/bin/bash

    #sleep 30

    export DISPLAY=:0

    DELAY=1
    MIN_TEMP=60
    MAX_TEMP=75

    CARDS_NUM=`nvidia-smi -L | wc -l`

    echo "Found ${CARDS_NUM} GPU(s) : MIN ${MIN_TEMP}°C - ${MAX_TEMP}°C MAX : Delay ${DELAY}s"

    for ((i=0; i /dev/null
    if [ "$?" -ne 0 ]; then
    exit 1;
    fi
    done

    echo "GPUFanControlState set to 1 for all cards"

    while true
    do
    echo "#################"
    echo "$(date +"%d/%m/%y %T")"
    for ((i=0; i<$CARDS_NUM; i++))
    do
    GPU_TEMP=`nvidia-smi -i $i --query-gpu=temperature.gpu --format=csv,noheader`
    if [[ $GPU_TEMP $MAX_TEMP ]]
    then
    FAN_SPEED=100
    else
    FAN_SPEED=$(( ($GPU_TEMP - $MIN_TEMP)*100/($MAX_TEMP - $MIN_TEMP) ))
    fi
    # ######
    nvidia-settings -a [gpu:$i]/GPUFanControlState=1 > /dev/null
    if [ "$?" -ne 0 ]; then
    exit 1;
    fi
    # ######
    nvidia-settings -a [fan:$i]/GPUTargetFanSpeed=$FAN_SPEED > /dev/null
    echo "GPU${i} ${GPU_TEMP}°C -> ${FAN_SPEED}%"
    done
    sleep $DELAY
    done

    пы/сы: Всё на свой страх и риск, естественно..

    Ответить
  3. @Алексей
    (https://losst.pro/temperatura-videokarty-v-linux#comment-58790)
    "А как настроить чтобы не было превышения определенной тем-ры карты? Чтобы карта не перегревалась?"

    Посмотрите эту статью:
    https://www.opennet.ru/opennews/art.shtml?num=50180
    "Представлены три новых проекта с графическими интерфейсами для оверклокинга (overclock) видеокарт NVIDIA и AMD, позволяющие управлять тактовой частотой и параметрами системы охлаждения, отслеживая изменение температуры и характеристик производительности. "

    Ответить
  4. Посмотреть температуру видеокарты в графическом интерефейсе может любой чайник. А как посмотреть её в терминале? Можете не говорить про sensors — там только температуры NVMe и процессора (пакет lm-sensors установлен).

    Что касается sensors-detect, её авторы честно предупреждают: «sensors-detect needs to access the hardware for most of the chip detections. By definition, it doesn't know which chips are there before it manages to identify them. This means that it can access chips in a way these chips do not like, causing problems ranging from SMBus lockup to permanent hardware damage» (и следующий абзац мана).

    Ответить

Оставьте комментарий