
Мониторинг критических параметров устройств при майнинге в ubuntu
При майнинге на видеокартах и процессоре важно контролировать и управлять ключевыми параметрами их состояния. К ним относятся:
- температура ядра и памяти;
- напряжение на ядре и памяти/контроллере памяти;
- частота ядра GPU и видеопамяти;
- потребление мощности видеокартой;
- скорость вращения вентиляторов системы охлаждения GPU;
- тайминги видеопамяти.
При работе в ubuntu часто возникает вопрос о том, какие программы можно использовать для контроля критических параметров состояния видеокарт и остальных устройств на компьютере?
Рассмотрим подробнее, какие программы мониторинга для Linux-подобных систем есть в открытом доступе, и какие из них лучше всего подходят для майнинга.
Обзор популярных утилит для мониторинга железа в Linux
В интернете можно найти множество бесплатных программ для мониторинга датчиков компьютера под linux, среди которых:
- HTOP — одно из лучших консольных приложений, мониторит и позволяет закрывать процессы нажатием кнопки F9 или k (kill), показывает загрузку CPU, RAM, виртуальную память. Не показывает информации о сети, GPU и температуре CPU;
- Glances — программа работает удаленно через SSH, позволяет отслеживать запущенные процессы, загрузку CPU, RAM, виртуальную память, работу сети, операции I/O. Из-за того, что Glances написана на Python, потребляет слишком много ресурсов процессора, нет информации о GPU и температуре CPU;
- Conky — красивая оболочка с инфо о CPU (в том числе загрузке и температуре), RAM, SWAP, HDD. Нет данных о видеокартах;
- Stacer — утилита для мониторинга и очистки системы, работы с меню автозагрузки и службами. Нет информации о GPU;
Меню автоматической очистки системы в Stacer:

- netdata — мониторинг через браузер состояния CPU, RAM, SWAP, HDD. Нет SSH, данных о видеокартах;
- KsysGuard — мониторинг и работа с процессами, вывод инфо о состоянии CPU, RAM, загрузке системы;
- GNOME System Monitor — мониторинг CPU, RAM, SWAP, HDD, сети. Нет SSH, данных о видеокартах;
- GkrellM — виджет с информацией о CPU, его напряжении и вентиляторах, HDD. Нет данных о видеокартах;
- CoreFreq — очень подробная информация только о процессоре;
- nmon — мониторинг CPU, RAM, SWAP, HDD, сети. Нет SSH, данных о видеокартах;
- vtop — урезанная копия htop;
- atop — мониторинг процессов, CPU, RAM, SWAP, HDD, сети. Нет данных о GPU;
- lm-sensors — позволяет отслеживать загрузку и температуру процессора, скорость вентилятора кулера CPU. В дополнение к ней желательно использовать hddtemp и psensor;
- Psensor — утилита, отображающая информацию о температуре материнской платы и процессора (и его загрузке), старых видеокарт AMD (в которых используется ATI драйвер Catalyst), HDD, вентиляторах;
- Hardinfo — хорошая утилита для мониторинга железа под Linux, но безнадежно устаревшая (последний релиз — от 2009 года);
- Open Hardware Monitor — утилита, предоставляющая информацию о материнской плате, напряжении на процессоре, его температуре, вентиляторах, HDD, а также о видеокартах AMD, Nvidia. Программа изначально предназначена для Windows, для работы в Linux требуется Mono with WinForms и танцы с бубном. Последняя версия выпущена в ноябре 2016 года, поэтому на новом железе работоспособность не гарантируется.
Наиболее оптимальные из них для мониторинга, это: lm-sensors, Psensor, Hardinfo.
Среди этих программ нет утилит, предоставляющих данные о состоянии графической подсистемы компьютера.
Для видеокарт можно использовать следующие утилиты:
- Nvidia-SMI — обычно входит в комплект драйверов Nvidia. Позволяет отслеживать загрузку GPU, температуру, состояние памяти, потребление, скорость вращения вентиляторов видеокарт производства компании Nvidia;
- TuxClocker — overclocking-утилита с графическим интерфейсом для разгона видеокарт Nvidia (от 600-й серии) и AMD при работе с драйверами amdgpu (все AMD карты до Radeon VII исключительно). Использует возможности Nvidia-SMI и nvidia-settings;
- GreenWithEnvy — Nvidia;
- WattmanGTK — AMD;
- Rocm-smi (утилита из пакета драйверов Rocm) — AMD;
- Radeon-profile — AMD.
Рассмотрим подробнее порядок установки и использования для майнинга лучших из этих приложений на рабочей станции под управлением операционной системы xubuntu 16.04.
Изучение информации об уставленном аппаратном обеспечении утилитами lm-sensors и psensor
Для проверки состояния сенсоров компьютера можно использовать утилиту lm-sensors, которая устанавливается командой:
sudo apt install lm-sensors
Проверка работоспособности утилиты lm-sensors осуществляется в терминале командой:
sudo sensors-detect
В результате ее выполнения появится информация о материнской плате, ядре установленной системы, процессоре. Кроме того, lm-sensors предложит провести сканирование на предмет наличия других сенсоров в системе:
При положительном ответе на этот вопрос (необходимо нажать латинскую букву «y» и ввод) появится информация о дополнительных сенсорах, обнаруженных в системе и будет предложено провести проверку наличия сенсоров в чипах устройств ввода-вывода:

Здесь lm-sensors предлагает записать данные о доступных сенсорах в файл etc/modules. Проще всего согласиться с предложением модифицировать этот файл.
Теперь, при вводе команды:
sensors
будет отображаться текущая информация от сенсоров GPU и CPU:

Для более полного вывода информации об установленном железе, включая температуру жесткого диска/SSD, нужно доставить утилиты hddtemp и psensor, которые устанавливаются командой:
sudo apt install hddtemp psensor
Теперь уже можно запустить GUI-утилиту psensor через пункт «Система» в меню запуска (Whisker) рабочего стола xubuntu.

Работающая psensor предоставляет пользователю довольно полную информацию о температуре устройств, скорости вращения кулеров, загрузке процессора, свободной памяти и температуре накопителя:

Эту утилиту при желании можно вывести на панель с помощью подменю Система — Psensor — правая кнопка мыши — добавить на панель.
Там же можно выбрать, какие сенсоры будут использоваться, а также добавить эту программу в автозапуск.
Кроме того, Psensor позволяет включить отображение параметров, которые ею мониторятся в виде диаграммы (нужно активировать соответствующую строку справа в окне программы).
Для удаленного мониторинга компьютера с помощью Psensor на удаленном компьютере устанавливают ее сервер командой:
sudo apt-get install psensor-server
затем его запускают:
psensor-server
а на рабочей станции, откуда проводится мониторинг, используют команду:
psensor --url=http://hostname:3131
К сожалению, в Psensor не отображается информация о текущем состоянии видеокарт.
Для отображения частоты ядра и памяти видеокарт в ОС типа ubuntu, температуры и частоты вращения вентилей, а также их разгона можно применять утилиты Radeon-profile (AMD), TuxClocker (nvidia, amd), GreenWithEnvy (nvidia), WattmanGTK (АМД).
Утилиты TuxClocker, GreenWithEnvy корректно работают с видеокартами nvidia. К сожалению, TuxClocker не всегда работает корректно с АМД. Для AMD лучше всего использовать Radeon-profile.
Работа с программой GreenWithEnvy для видеокарт nvidia
Работа с программой GreenWithEnvy проста и интуитивно понятна. Для ее установки инсталлируют библиотеки:
sudo apt install git meson python3-pip python3-setuptools libcairo2-dev libgirepository1.0-dev libglib2.0-dev libdazzle-1.0-dev gir1.2-gtksource-3.0 gir1.2-appindicator3-0.1 python3-gi-cairo appstream-util
а потом выполняют команды:
flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak --user install flathub com.leinardi.gwe flatpak update
Запуск GreenWithEnvy производится командой:
flatpak run com.leinardi.gwe
или просто:
gwe
Скриншот утилиты GreenWithEnvy:

Работа с утилитой TuxClocker для видеокарт amd/nvidia в Ubuntu
Для работы с видеокартами nvidia в ubuntu утилите Tuxclocker требуется наличие установленных пакетов nvidia-smi, nvidia-settings, libxnvctrl и headers qt5base, x11extras. Для видеокарт amd требуется наличие библиотек libdrm и headers. Обычно все эти пакеты уже стоят в системе с запущенным майнингом.
Для компиляции и установки утилиты Tuxclocker для мониторинга состояния видеокарт nvidia, в терминале по очереди выполняют команды:
git clone https://github.com/Lurkki14/tuxclocker cd tuxclocker qmake rojekti.pro (возможно, нужно будет установить пакет qtchooser командой sudo apt install qtchooser) make sudo make install
Программа Tuxclocker установится в папку /opt/tuxclocker/bin.
При появлении ошибок вида:
qmake: could not find a Qt installation of '',
а также:
Project ERROR: Unknown module(s) in QT: x11extras
нужно установить пакеты qt5 и libqt5x11extras5-dev командой:
sudo apt-get install qt5-default libqt5x11extras5-dev
Для видеокарт AMD в терминале последовательно выполняют команды:
git clone https://github.com/Lurkki14/tuxclocker cd tuxclocker git checkout pstatetest qmake rojekti.pro make sudo make install (программа установится в папку /opt/tuxclocker/bin)
Для полноценного использования, утилиту tuxclocker нужно запускать от имени root командой:
sudo /opt/tuxclocker/bin/tuxclocker
Окна работающей утилиты tuxclocker:

Для полноценной работы с видеокартами АМД нужно включить в драйвере утилиту Radeon OverDrive. Это делается путем добавления в загрузчик ядра (не ниже версии 4.17) опции amdgpu.ppfeaturemask=0xffffffff (или amdgpu.ppfeaturemask=0xfffd7fff).
Для этого корректируют файл /etc/default/grub, а именно:
строку GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
нужно привести к виду:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amdgpu.vm_fragment_size=9 radeon.si_support=0 amdgpu.si_support=1 amdgpu.dpm=1 amdgpu.ppfeaturemask=0xffffffff"
Для корректировки /etc/default/grub используют:
sudo nano /etc/default/grub
изменяют содержимое файла /etc/default/grub и обновляют grub командой:
sudo update-grub
Для справки:
В данном случае при корректировке опций загрузки ubuntu используются следующие параметры работы ядра (kernel), отвечающие за видеорежим:
- amdgpu.vm_fragment_size=9 — включение поддержки больших страниц памяти (аналог compute mode);
- nomodeset — настройка видеокарт происходит в ядре ,а не драйверах. Драйвера видеокарт не запускаются до полного запуска системы. Для майнинга этот режим применять нет смысла;
- quiet — при загрузке не отображаются сообщения об активации драйверов и прочей служебной информации. Для более полного контроля над компьютером и изучения процесса загрузки можно вообще отключать эту опцию;
- splash — режим, при котором запускается экран загрузки «глаз» и основные компоненты системы загружаются в фоновом режиме.
- quiet splash — тихое отображение заставки.
Параметры radeon.si_support=0 amdgpu.si_support=1 включают поддержку драйвера amdgpu для видеокарт amd вместо устаревшего драйвера radeon.
Параметр amdgpu.dpm=1 добавляет поддержку режима DPM (dynamic power management) для видеокарт AMD.
Параметр amdgpu.ppfeaturemask=0xffffffff» используется для видеокарт AMD Polaris и Vega для включения OverDrive и разблокирования возможности полноценной работы с вольтажом, частотой ядра и памяти таких видеокарт. Для Gpu Navi (RX5700) можно попробовать использовать параметр amdgpu.ppfeaturemask=0xfffd7fff.
Для проверки корректности параметров загрузки применяют команду:
printf "0x%08x\n" $(cat /sys/module/amdgpu/parameters/ppfeaturemask)
Должно отображаться значение 0xffffffff.
Рассмотрим подробнее работу с утилитой WattmanGTK, которая лучше всего работает с видеокартами AMD.
Установка и работа с утилитой Wattmangtk для мониторинга и разгона видеокарт AMD в Ubuntu
Программа WattmanGTK — это эмулятор Wattman (для Windows), работающий в linux с ядром 4.8+ (Ubuntu 16.10 и выше). Программа работает с AMDGPU kernel driver, имеет следующие возможности:
- показывает состояние памяти, GPU P-states, включая вольтаж;
- может мониторить сигналы сенсоров видеокарт;
- поддерживает работу со скриптами разгона, а также позволяет изменять параметры работы GPU прямо из графического интерфейса;
- поддерживает риги с несколькими видеокартами.
К сожалению, пока WattmanGTK не поддерживает управление вентиляторами кулеров видеокарт.
Для работы WattmanGTK нужно установить необходимые пакеты окружения командой (вводят сразу все строки):
sudo apt install --yes \
python3-matplotlib
python3-gi
python3-setuptools
python3-cairoУстановка производится из терминала, запущенного в папке со скачанной программой WattmanGTK командами:
git clone https://github.com/BoukeHaarsma23/WattmanGTK cd WattmanGTK sudo python3 setup.py install
Для корректной работы WattmanGTK с видеокартами АМД также нужно скорректировать файл /etc/default/grub, а именно:
строку GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash»
нужно привести к виду:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amdgpu.ppfeaturemask=0xffffffff"
и обновить grub командой:
sudo update-grub
и перезагрузить компьютер.
Скриншот WattmanGTK:
К сожалению, WattmanGTK не работает в ubuntu 16.04, поэтому для такой ОС для мониторинга видеокарт АМД лучше использовать программу Radeon-profile или утилиту rocm-smi из пакета драйверов rocm.
Контроль состояния видеокарт AMD с помощью утилиты rocm-smi
rocm-smi (ROC System Management Interface) — это утилита, входящая в пакет драйверов rocm.
Ее можно поставить отдельно командами:
git clone https://github.com/RadeonOpenCompute/ROC-smi cd ROC-smi sudo apt install rocm-smi
Программа по умолчанию установится в папку /opt/rocm/bin/rocm-smi.
По умолчанию rocm-smi показывает следующую информацию:

rocm-smi может показывать полную информацию о состоянии GPU AMD (версия Bios, стейты, вольтаж и много другого) с помощью команды:
rocm-smi --showallinfo
Полный список команд rocm-smi доступен на github или в терминале после выполнения команды:
rocm-smi -h
Много возможностей предоставляет программа Radeon-profile.
Работа с утилитой Radeon-profile для видеокарт АМД
Radeon-profile в Ubuntu требует наличия дополнительных пакетов, которые устанавливают командой:
sudo apt-get install qt5-default x11-xserver-utils libxrandr2 libdrm-dev
Установка Radeon-profile делается командами:
sudo add-apt-repository ppa:trebelnik-stefina/radeon-profile sudo apt-get update sudo apt-get install radeon-profile
Запуск программы Radeon-profile производят через меню системы:

Скриншот работающей утилиты Radeon-profile:
Заключение
Для мониторинга состояния видеокарт AMD в графическом режиме удобнее всего использовать программу Radeon-profile. Она предоставляет богатую информацию о видеокартах, установленных в системе, а также о параметрах видео в ядре системы. Ее же можно использовать для разгона и даунвольтинга, как и wolfamdctrl.
Для видеокарт nvidia можно использовать Tuxclocker или GreenWithEnvy.
Для мониторинга других устройств компьютера в ubuntu можно использовать утилиту lm-sensors вместе с hddtemp и psensor.
Заключение

