так не понятно, стабильность же хорошо? дергается - плохо, не дергается - тоже плохо?)
Стабильность - это хорошо, когда стабильность достигается на заданной температуре, если стабильность будет на 20’ или 90’ - это плохо. Только точно на заданной.
одни говорят что чем ниже температура тем лучше, другим ферма спать мешает и им надо тише, у третьих вентиляторы изнашиваются. некоторые 65% минимальные обороты ставят в скрипте.
Вот поэтому заданную температуру нужно дать выбрать человеку самому, а не решать за него.
прибор на видео с шаром конечно крутой, но “Данное видео создала группа людей, любящих и умеющих заниматься робототехникой” , т.е. группа, и сколько они этим занимались неизвестно, в рамках какого проекта и кто их спонсировал.
Это был просто пример для наглядности, при чём здесь роботы? Сам принцип ПИД-регуляции заключён в одной формуле. Я этим занимался для регулировки подачи высокого напряжения до 100000V с помощью балансировки двух инверторов с точностью до 10V. Другого простого способа удерживать что-то на заданном значении руководствуясь датчиками обратной связи нет. Но я же говорю, задачу можно упростить до P или P и D, если заморочиться, а сами коэффициенты P, I, D нужно дать дать редактировать в конфиг файле для тех, кому стандартная регулировка не нравится. Точно так же поступают в квадрокоптерах. PID-регулировка позволяет чётко управлять оборотами пропеллеров, а если у пользователя наблюдаются осцилляции или наоборот, ему хочется более быстрого и жёсткого управления, он сам заходит и меняет в конфигах коэффициенты.
нам здесь мгновенная за секунду стабилизация не нужна. Задача проще - ввести коэффициент P и завысить его, тогда обороты медленно, но уверенно будут стабилизированы за несколько коррекций. В примере с машинокй на 1:21 у нас сейчас наблюдается верхний вариант. Он бесконечно корректирует то вверх, то вниз, но никогда не достигнет цели из-за больших “перелётов”.
идея со слип тайм интересна, но в случае, допустим отвала инет, а потом восстановления, как долго будут восстанавливаться обороты? как адаптировать? тут нужно тестить.
если отвалится интернет, то температуры упадут. и даже если мы это заметим не сразу, ничего плохо не случится. потом температуры скорее всего будут ниже целевой, даже при пониженных оборотах, и слип тайм вернется к исходному значению и останется таким, пока не появится интернет и температуры не вырастут до целевых. тогда опять можно увеличить слип тайм
если данные берутся из агента, то можно еще смотреть на потребляемую мощность для определения состояния простоя.
Я ж о чём и говорю, регулирует, но нужно гораздо точнее это делать и деликатнее. Сейчас поставил 59 везде, имею от 53 до 62 и то гудящие, то тихий риг ежеминутно. Погрешность регулировки -11+5%. Это ещё больше раздражает слух, чем просто громкие карты. Нужно полностью переделать алгоритм, и сначала подумать.
подумаем как исправить.
такое положение происходит по причине общего коэффициента для всех карт. т.е. если хотя бы одна из карт не хочет остыть - то имеем то что на последнем скрине.
положение улучшает уменьшение дельты между коэффициентами. но есть ещё один момент в переходных состояниях, который можно исправить.
в случае с @red4911 на первом риге вообще не понятно что, вероятно сбой в массиве, возмоно как у @Bio . проверить не удалось, в багфиксе не хотят участвовать)
баг, если первая карта встроенная или амд - исправлен.
баг с принудительным майнер стартом - исправлен.
чтоб отключить автофан, достаточно не создавать конфиг или поле таргет_темп оставить пустым. автофан висит в скринах, но ничего не регулирует.
самый идеальный вариант - у всех карт одинаковая заданная пользолвателем температура +/- 1’, а когда одни охлаждаются сильнее, то другие нагреваются сильнее и начинается пляска с температурами и оборотами. и сейчас мы наблюдаем то что в одном риге разбег у карт более 7’.
@steambot, да, я только хотел сказать, что пронаблюдал, что скрипт ставит всем картам одинаковые обороты в зависимости от температуры согласно какой-то заранее заданной таблице вроде:
55’ -> ставь 45% (не зависимо от мощности СО карты)
56’ -> ставь 52%
57’ -> ставь 55% и т.д.
А так быть не может. Потому что, у одних карт скоростные вентиляторы, и они уже при 40% нехило качают и начинают шуметь, например, Asus Dual, а у других, например, любые inno3D iChill, очень спокойные и тихие вентиляторы. На моём скрине он красный. Они и при 95% тихие, но и обдув слабее. Конечно, нужно каждую карту регулировать независимо от других. Хух, ну, теперь всё выяснили. Надеюсь, автор теперь хорошо поработает ) А то лето уже идёт полным ходом. Разница между днём и ночью достигает 16’.
В багфиксе я бы поучаствовал, но слишком температуры высокие становятся на разных картах боюсь что это может привести к нежелательным последствиям если не уследить за температурой.
@SammoLove я изменил алгоритм, сейчас на рассмотрении. там такого нет, скрипт старается держать таргет темп. ну и применил правило “чем дальше тем сильнее” ))) на тестах система вышла стабильной.
проблема с красными картами. они живут своей жизнью. когда ставишь принудительно ПВМ он может не измениться, или измениться со значением -2 или ещё как то.
только неизвестно на всех красных или на определенных моделях.
upd: идея с изменением тайм слип тоже там. почти ПИД)))
апдейт на гите
для обновления:
wget -O /hive/sbin/autofan https://raw.githubusercontent.com/minershive/hiveos-linux/master/hive/sbin/autofan
chmod +x /hive/sbin/autofan
прибить старый и запустить новый или перезагрузка.
формат конфига /hive/config/autofan.conf:
TARGET_TEMP=60
MIN_FAN=30
MAX_FAN=100 #temperature of stop miner
CRITICAL_TEMP=85 #AMD fan control (AMD control enable-0/AMD control disable-1)
NO_AMD=0
@steambot, спасибо! работает лучше, аккуратнее. но стремление установить температуру с точностью до градуса приводит к тому, что постоянно регулируется то вверх, то вниз. гистерезис то вообще есть?) разброс два-три градуса просто обязан быть. т.к. изменению в 1% кулера может, например, соответствовать 2 градуса. и обороты никогда не устаканятся
@Bio если окружающая температура стабильна, то устаканиваются, у меня так на риге. пробовал сделать ±1 градус погрешность, тогда потом если темп дальше изменяется, сильнее начнет крутить. можно подкорректировать формулу, чтоб потом не было перерегулировки, я попробую. @SammoLove спасибо за фидбеки, помогает)