Перейти к содержимому
Dimasin

Fermtools мониторинг ферм и не только.

Рекомендуемые сообщения

(изменено)

Текущая стабильная версия 1.0.1.1 / исправления от 21.06.2017

Для Windows 7 необходимо установить Microsoft .NET Framework 4.5.2
Ссылка проекта на github: https://github.com/Dimasin/fermtools
Ссылка для скачивания бинарников: https://github.com/Dimasin/fermtools/releases

 

Описание возможностей.

 


Программа для удобного вывода параметров видеокарт, мониторинга и оповещения.
Возможности:
- удобное отображение параметров одновременно для нескольких видеокарт,
- возможность определить в каком слоте установлена данная видеокарта,
- все параметры можно читать из поименованного канала (pipe) "pipefermtools" (по умолчанию отключен), включается параметром "cb_startPipe" : True,
- надежный (не реагирует на кратковременные изменения отслеживаемых параметров) и настраиваемый алгоритм мониторинга: настройка осуществляется путем подбора интервала времени усреднения и коэффициента, срабатывание мониторинга произойдет если за указанный интервал времени среднее значение параметра будет меньше, чем максимальное (в этом же интервале) поделенное на коэффициент, например, частота шины памяти в рабочем режиме 1500, в режиме отказа 150, если изменение произошло скачкообразно, то используя 60 последних значений для расчета среднего (рачсет среднего происходит 1 раз в секунду), среднее значение будет непрерывно уменьшаться и достигнет половины максимального (коэффициент равен 2-м) через 33 секунды,
- возможность оценить время срабатывания мониторинга при скачкообразном изменении параметров: tau = T*Max(1 - 1/K)/(Max-Min), где: tau - время срабатывания мониторинга, T - интервал времени усреднения, Max - рабочее значение параметра, Min - значение параметра при отказе, K - задаваемый коэффициент.
- поддержка некоторых аппаратных сторожевых таймеров для автоматического рестарта компьютера при зависании компьютера или сбое видео карты (управление сторожевым таймером требует режим администратора для загрузки драйверов), поддержка USB сторожевых таймеров https://shop.open-dev.ru/collection/storozhevye-taymery (режим Администратора не требуется),
- ручной ресет из контекстного меню, удаленный ресет через команду Telegram /reset FermName,
- запись событий о сбоях и ошибках в журнал приложений windows (требуется режим администратора),
- отправка оповещений по электронной почте при перезагрузке компьютера из за сбоев видеокарт,
- отправка оповещений конкретному пользователю мессенджера Telegram (нужно регистрировать собственного бота Telegram у бота BotFather послав ему команду /start и далее по его подсказкам),
- при регистрации собственного бота можно включить командный режим в котором бот будет по запросу отправлять параметры видеокарт указанному пользователю используя команды: /fgpu, /fmem, /lgpu, /lmem, /tgpu, /fanr, /fanp или /all.
- при срабатывании мониторинга можно удаленно, через Telegram, отключить перезагрузку путем отправки боту команды /resetoff, команду нужно отправить до инициализации процесса перезагрузки: "Timeout display the message of fault, sec" + "Timeout display the next message of fault, sec", при этом мониторинг так же отключится (сообщения больше приходить не будут), но параметры видеокарт вручную так же можно будет получать через бота Telegram, вновь включить мониторинг и активировать возможность перезагрузки можно командой боту /reseton, команда /resetget отобразит текущее состояние флага перезагрузки,
- выполнение команды из консоли (cmd) при срабатывании мониторинга (по умолчанию отключено), команда указывается в значении параметра "cmd_Script": "",
- ручное редактирование файла конфигурации fermtools.json в каталоге программы, шаблон файла конфигурации создается при первом запуске программы,
- резервный файл конфигурации на случай "порчи" основного fermtools0.json в каталоге программы, нужно создать вручную или скопировать основной.

Драйверы для управления сторожевым таймером взяты "как есть" из проекта openhardwaremonitor. Также из этого проекта использованы некоторые участки кода для чтения параметров видеокарт и определения наличия сторожевых таймеров.
http://openhardwaremonitor.org
https://github.com/openhardwaremonitor

Команды упраления USB сторожевым таймером взяты из проекта Радомира Азизова "USB WatchDog Monitor".
https://bitbucket.org/Rdmr/usb-watchdog-monitor/

 

Предложения и замечания приветствуются.
 
Краткая инструкция по установке.

 

 

1. В корне диска создаете папку, например, Fermtools.
2. Качаете архив с программой. Рекомендуется качать последнюю стабильную версию.
3. Распаковываете архив в созданную папку.
4. Задаете параметры электронной почты на соответствующей вкладке, если нужно. Тестируете, если все хорошо, сохраняете конфиг.
5. Регистрируете в Telegramm собственного бота, задаете параметры на соответствующей вкладке, если нужно. Тестируете, если все хорошо, сохраняете конфиг.
6. Отмечаете на первой вкладке галками критичные для изменения параметры, за которыми нужно следить. На второй вкладке, если нужно корректируете коэффициенты. Сохраняете конфигурацию. Тестируете. Корректируете коэффициенты, тестируете и т.д. до достижения желаемого результата. Сохраняете конфиг.
7. Прописываете программу в автозагрузку. Рекомендую использовать планировщик. Перезагружаете ферму. Ждете реальных отказов, если необходимо возвращаетесь к п. 6.

У меня реально мониторится только один параметр - частота памяти. Коэффициенты по умолчанию.

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

 

 

Изменено пользователем Dimasin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Dimasin, а как установить вашу программу?, есть какая нибудь инструкция?, спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

1. Качнуть последний релиз https://github.com/Dimasin/fermtools/files/264395/Release_1.0.0.2.zip

2. Распаковать

3. Запустить

4. Разбираться с настройками

 

p.s. плохо что нет описания по переменным, например что означает K_gpu_temp, а так вообще работает.

Изменено пользователем ded_miner

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, и еще не понятно как отключить перезагрузку компа, нужно только чтобы приходило уведомление.

А лучше еще сделать настраиваемую строку, для выполнения своей команды при выполнении какого-то условия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Качнуть последний релиз https://github.com/Dimasin/fermtools/files/264395/Release_1.0.0.2.zip

2. Распаковать

3. Запустить

4. Разбираться с настройками

 

p.s. плохо что нет описания по переменным, например что означает K_gpu_temp, а так вообще работает.

Добавил в шапку некоторые пояснения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Да, и еще не понятно как отключить перезагрузку компа, нужно только чтобы приходило уведомление.

А лучше еще сделать настраиваемую строку, для выполнения своей команды при выполнении какого-то условия.

Перезагрузку при включенном мониторинге не отключить, можно задержать примерно на пол часа, установив максимальную задержку (1000 сек) отображения окна сообщения о срабатывании мониторинга и максимальную задержку (1000 сек) последующего сообщения.

Есть возможность намного шире, чем своя команда, а именно возможность чтения параметров через поименованный канал. Можно строить свою логику обработки и реакцию на изменения средствами скриптовых языков, где есть соответствующие инструменты или, например, тот же c#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.IO.Pipes;

namespace MyPipeClient
{
    class Program
    {
        static void Main(string[] args)
        {
            NamedPipeClientStream pipeClient = new NamedPipeClientStream(".", "pipefermtools", PipeDirection.In);
            pipeClient.Connect();
            StreamReader sr = new StreamReader(pipeClient);
            string temp;
            while ((temp = sr.ReadLine()) != null)
            {
                Console.WriteLine("Received from server: {0}", temp);
            }
        }
    }
}

Изменено пользователем Dimasin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще хорошая задумка, но перезагрузку лучше сделать отключаемую, потому что не обязательно перезагружать ферму, если достаточно просто перезапустить майнер. А так хватило бы оповещения на мыло или телеграм-боту. Оповещения приходят нормально, обычно как раз по падению температуры можно судить что майнер встал.

post-2668-0-60779700-1464543458_thumb.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще хорошая задумка, но перезагрузку лучше сделать отключаемую, потому что не обязательно перезагружать ферму, если достаточно просто перезапустить майнер. А так хватило бы оповещения на мыло или телеграм-боту. Оповещения приходят нормально, обычно как раз по падению температуры можно судить что майнер встал.

Видимо зависит от карт и алгоритма майнинга, у меня редко получалось исправить ситуацию простой перезагрузкой майнера, а на одной ферме даже встроенный сторожевой таймер не всегда спасал. Я подумаю, куда можно будет вставить выключатель перезагрузки при срабатывании мониторинга.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

А именно, хочу чтобы мониторинг срабатывал, при увелич. тем. gpu предположим на 10%. Выставил коэф. 1,1 а вот дальше из описания понял, что реакция мониторинга настроена на понижение показателей.

Да, по дефолту мониторинг срабатывает только на изменение параметров вниз т.к. это чаще всего происходит при зависании видеокарт. Чтобы мониторинг срабатывал в обе стороны нужно снять галку "No react to up" и настроить задержку мониторинга после старта, чтобы не получилась циклическая перезагрузка. Представьте, загружается комп, майнер, мониторинг, но температура карт еще какое то время растет, мониторинг это улавливает, перезагружает комп и т.д.

 

2.На первом экране - галочки (чекбоксы) напротив  показателей, что это?

Это как раз и есть включение мониторинга по конкретному параметру. Снят - мониторинг параметра отключен, установлен - мониторинг параметра включен.

Изменено пользователем Dimasin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На мой взгляд, мониторить повышение температуры нерационально, желательно создать условия, чтобы температура карт была не более желаемой. Ну и кроме того, мониторинг работает таким образом, что постепенное повышение какого либо параметра он не может не почувствовать. Собственно он так и задумывался. Это не просто порог с допуском +/- т.к. скачкообразные изменения могут присутствовать в алгоритме майнинга, например, загрузка GPU, а чтобы выявить такие изменения, которые характерны именно для зависших карт.

Даже если предположить целесообразность контроля температуры, то что тогда? Ну увидели Вы, что температура растет и что? Побежали покупать кондиционер? А если ферма в соседней деревне или Вы за город на выходные уехали? В случае с температурой мониторинг не решение вопроса. Мониторинг нужен именно для выявления случайных сбоев, чтобы ресетнуть зависшую ферму, а не обнаружить по утру что ферма зависла часа в три ночи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Помогите разобраться с телеграмом. Создал бота у BotFather. В софтину в поле Token bot вставил токен, в поле Name bot - имя пользователя без символа @, в Send to - имя пользователя получателя без @. Правильно ли я сделал? Нажимаю на тест - бот стартует успешно. Отправляю команды боту через телеграм, но ничего не получаю. С телеграмом раньше дел не имел, а с ботами тем более

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

C nvidia работает?

А на gentoo? Если да, какие зависимости требуются?

 

Ещё бы хотелось скриншоты увидеть конечного результата. На что в итоге то будет похоже?

 

Хотя бы просто понять, стоит ли с этим разбираться или нет? Ну не перечитывать же весь код, в котором на первый взгляд комментарии отсутствуют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

пара скринов

post-2668-0-56230000-1468849309_thumb.png

post-2668-0-26764300-1468849315_thumb.png

Лично я пользуюсь данной прогой просто как информационной. Для мониторинга у меня совсем другой механизм - на коинотроне есть API, в нем строчки состояния хешрейта у майнеров. АРI дергается wget-ом раз в 10 минут и сохраняется, monit проверяет что нет строчки "hashrate":"0". Если вдруг хешрейт падает до нуля, то отправляется почта на sms-гейт и на телефон приходит уведомление что ферма встала.

Изменено пользователем ded_miner

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Вот создал тестового бота. Не работает
post-7044-0-39726900-1468864796_thumb.png  post-7044-0-63387200-1468864816_thumb.png  post-7044-0-73726100-1468864818_thumb.png   post-7044-0-30975800-1468865006_thumb.png  post-7044-0-47554000-1468864820_thumb.png
 

Изменено пользователем Domanell

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

C nvidia работает?

А на gentoo? Если да, какие зависимости требуются?

 

Ещё бы хотелось скриншоты увидеть конечного результата. На что в итоге то будет похоже?

 

Хотя бы просто понять, стоит ли с этим разбираться или нет? Ну не перечитывать же весь код, в котором на первый взгляд комментарии отсутствуют.

Да, Nvidia мониторит, но только на windows, если только dotNet не научились собирать под Linux.

Скриншоты тут: https://github.com/Dimasin/fermtools/tree/master/fermtools

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот создал тестового бота. Не работает

 

На первый взгляд все верно, нигде в написании не ошиблись. Сообщение, что бот успешно стартовал означает, что сеть Telegram его опознала.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

@Dimasin, , Странно, сегодня все заработало. Спасибо за помощь 

Изменено пользователем Domanell

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Можно ей как-то запретить перезагружать ферму? При срабатывании оповещения на вин 7 и 8.1 программка просто зависает - "программа перестала отвечать", после чего она запускается повторно и все отлично продолжает работать. На одной ферме у меня вин 10 и проблемы с даунвольтом карт при запуске. Часто бывают просадки интернета и как следствие - перезагрузка фермы и повторные проблемы с даунвольтом. На 10ке программа реально перезагружает ферму, на 7 и 8.1 - вылетает.

Изменено пользователем Domanell

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Можно ей как-то запретить перезагружать ферму? При срабатывании оповещения на вин 7 и 8.1 программка просто зависает - "программа перестала отвечать", после чего она запускается повторно и все отлично продолжает работать. На одной ферме у меня вин 10 и проблемы с даунвольтом карт при запуске. Часто бывают просадки интернета и как следствие - перезагрузка фермы и повторные проблемы с даунвольтом. На 10ке программа реально перезагружает ферму, на 7 и 8.1 - вылетает.

Пока что нет.

 

Для выяснения причин зависания посмотрите стандартные журналы винды, там должно что то быть. Да, один момент, нужно запускать программу в режиме администратора. Иначе сторожевой таймер не будет работать и сообщения тоже не будут писаться.

 

Судя по предыдущим скриншотам, на Ваших фермах не опознался аппаратный сторожевой таймер. Если хотите, могу проанализировать в чем причина и если аппаратные таймеры на материнке есть, то добавить их обработку в программу. Для этого мне нужен отчет софтины http://openhardwaremonitor.org/

Изменено пользователем Dimasin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для выяснения причин зависания посмотрите стандартные журналы винды, там должно что то быть. Да, один момент, нужно запускать программу в режиме администратора. Иначе сторожевой таймер не будет работать и сообщения тоже не будут писаться.

Мне Ваша программка подходит именно для мониторинга через телеграмм температур и оповещение отвалов карт в сик/дед, которые периодически бывают. Программу специально запускаю не от имени администратора, чтоб она не перезагружала ферму. Мониторинг и оповещение работают отлично. При срабатывании оповещения программа не перезагружает комп, а выключается, что мне и надо. А на 10ке перезагружается)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне Ваша программка подходит именно для мониторинга через телеграмм температур и оповещение отвалов карт в сик/дед, которые периодически бывают. Программу специально запускаю не от имени администратора, чтоб она не перезагружала ферму. Мониторинг и оповещение работают отлично. При срабатывании оповещения программа не перезагружает комп, а выключается, что мне и надо. А на 10ке перезагружается)

Скажите, а что Вы делаете, когда приходит сообщение о сбое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скажите, а что Вы делаете, когда приходит сообщение о сбое?

захожу на ферму, перезагружаю майнер, закрываю окно ошибки, что Fermtools перестал отвечать и запускаю ее заново. Сейчас увеличил время отображения окна о перезагрузки и Fermtools перестала зависать, вернее не успевает, т.к. это происходило непосредственно тогда, когда должна была начинаться перезагрузка. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

захожу на ферму, перезагружаю майнер, закрываю окно ошибки, что Fermtools перестал отвечать и запускаю ее заново. Сейчас увеличил время отображения окна о перезагрузки и Fermtools перестала зависать, вернее не успевает, т.к. это происходило непосредственно тогда, когда должна была начинаться перезагрузка. 

Везет Вам. У меня все сбои, почему то происходят по ночам или когда я куда нибудь уезжаю в выходные и редко когда зависшая карта дает перезагрузить программу майнинга, только ресет и спасает. Иногда, к стати, и программа не спасает, приходится передергивать GSM розетки на некоторых фермах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×