Nvidia autofan script for HiveOS|Скрипт автоуправления вентиляторами Nvidia


в связи с летним сезоном, делюсь, если кому то нужно)

установка простая. в папку /home/user заливается 2 файла autofan.sh и xinit.user.sh (ставим права на исполнение 755 ).
запускаем командой screen -dmS autofan /home/user/autofan.sh
всё!)))
командой screen -ls проверяем висит ли процесс autofan.
проверяем обороты и температуру GPU.
скрипт будет стартовать при перезагрузке системы.
если убъете процесс, то примените заново настройки вентиляторов из панели Hive.

кому мало оборотов, то более агрессивных настроек работы вентиляторов можно добиться увеличением параметров MIN_COEF и MAX_COEF (для начала попробуйте MIN_COEF=85).

тестировалось на 1066/1070/1080.

с удовольствием отвечу на вопросы)

p.s. for not russian-speaking users: read GitHub description

видеоинструкция https://youtu.be/mteaBR5XQ-o

доброго времени суток, все сделал по инструкции, но процесс не появился в списке после “командой screen -ls проверяем висит ли процесс autofan.”
подскажите пожалуйста куда копать?

права выставили на исполнение? пробуйте запустить ./autofan.sh (нужно перейти в папку со скриптом). у меня запущено как на 0.5-32 сборке, так и на 0.5-51. всё работает. единственный нюанс, не знаю как поведет себя скрипт в риге, где и красные и зеленые карты стоят. у меня красных нет, не могу протестировать.
как вариант, проделать те же действия локально из консоли (не по ssh) либо: Once you are in run sudo -s to become root user. Start or stop miners, agent, etc only from root user. но измените тогда пароль пользователя user, если к ригу есть доступ из интернета, для безопасности.
позже попробую запустить скрипт без привилегий, чтобы знать точно.

Я проверил - работает стабильно в риге где есть и красные и зеленые. Только я так и не понял алгоритм примененный в этом скрипте и назначение параметров MIN_COEF и MAX_COEF. Не могли бы прокомментировать формулы примененные для вычисления скоростей вентиляторов

Принцип расчета оборотов основан на коэффициентах MIN_COEF и MAX_COEF ,  в зависимости от текущей температуры видеокарты и порогов минимальной и максимальной температур. Формула расчета создавалась исходя из имеющихся данных (условие: без использования предыдущих значений). В принципе  сразу просто взял 3 точки температуры и желаемые обороты, потом подбирал коэффициенты и делал расчеты, пока не выстроилась система. Мне такой путь показался наиболее быстрым, чем искать уравнение кривой) 
Для получения более высоких оборотов, нужно увеличить коэффициенты MIN_COEF и MAX_COEF. Также можно изменять и параметры MIN_TEMP и MAX_TEMP. Но лучше сначала перепроверить на калькуляторе и подобрать более предпочтительный вариант.  Я тестировал и изменением MIN_TEMP и MAX_TEMP, но мне больше нравиться изменением MIN_COEF и MAX_COEF. Можно и все 4 поменять)
На GitHub внизу в описании для наглядности есть табличка с несколькими расчетами для измененных параметров.

Вот таблица с формулами, можно поставить свои значения коэффициентов и увидеть результат. https://docs.google.com/spreadsheets/d/1WIFmyyYiKxEmjZeXVx17DSbxZVzSR38jgQolwdpGHNI/edit?usp=sharing

hi, i’m trying to run the script but i get this, any ideas ?

[quote=“lycanalin;3743”]hi, i’m trying to run the script but i get this, any ideas ?

[/quote]
Script does not work on mixed rig.
Needs some workarounds

[quote=“lycanalin;3743”]hi, i’m trying to run the script but i get this, any ideas ?

[/quote]

Script will work on mixed rig (nvidia and amd) if an amd GPU will last. For example, your rig must have:
0-nvidia
1-n
2-n
3-n
4-n
5-n
6-amd
7-amd

You can try to re-switch on the amd card in other pci slot.

У меня стоят вразнобой амд 6 шт. и нвидиа 7 шт. Проблем нет - скрипт работает четко на нвидиа. Амд управляются клеймором.

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

вообще по идеи не должно быть ибо через драйвера nvidia номер карты через nvidia-smi и номер карты в nvidia-settings это чисто внутреннее распределение номеров карт. Т.е. как бы рандомно не стояли карты в риге нумерация карт в драйвере nvidia все равно будет последовательная.

да, все верно. выяснил проблему. на 51 сборке оверклокинг не работает, поэтому траблы у него. ща откатится, перепроверим.

проблема решена другой сборкой.


Новая версия. Проста в установке и дружественна пользователю)

Добавлено:

  • скрипт сам создает файл автозагрузки (если его нет) и прописывает необходимые команды
  • изменение настроек при запуске скрипта с ключем -s . настройки применяются сразу, перезапуск скрипта не требуется.
  • мониторинг температуры и вентиляторов при запуске с ключем -c
  • возможность запуска в невидимом режиме (как сервис) прямо из скрипта. ключ -g
  • возможность запуска в обычном режиме. ключ -r. при закрытии окна скрипт перестанет работать.
  • прекратить работу скрипта можно запуском с ключем -k
  • запуск без ключа проведет все необходимые настройки и спросит разрешения на запуск в режиме сервиса или в обычном экранном.

Для установки нужно только скачать файл autofan.sh, задать ему права на исполнение, запустить и следовать инструкциям на экране (ввести настройки и согласится на запуск скрипта в диалоге). Как проделать эти операции описано в readme на GitHub.

Попробуйте, Вам понравится!)))

Обновление скрипта.

  • добавлен selfupdate при запуске с ключем -u с GitHub
  • опция остановки майнера при достижениии критической температуры (задается в настройках), майнер запускается снова после снижения температуры ВК
  • опция снижения ПЛ при достижении установленной пользователем критической температуры. ПЛ снижается только для той карты, которая перегрелась. ПЛ снижается до 120% от минимального ПЛ, заявленного видеокартой. Значение минимального ПЛ для каждой ВК можно увидеть в админке хайва. К прежнему значению можно вернуться, применив настройки оверклокинга из админки.

UPDATE v.2.3.2:
The script has an intellectual adjustment. You need to set the range of the desired temperature. During the work the script will adjust the necessary parameters. After some time after starting the fan speed will be more stable in the specified temperature range.

Обновление v.2.3.2:
Применяется “интеллектуальная” стабилизация оборотов в пределах заданных температур. Также используется автоматическое понижение или повышение коэффициентов.
Теперь в настройках нужно указать только диапазон температур (мин, макс), минимально желаемые обороты кулера, условия остановки майнера и снижения ПЛ.

Thanks for this! I have rolled out this script to all my HIVE rigs and overall it is working great. But I’m not sure the “Intelligence” is working correctly on all my rigs.

Here’s a shot of the HIVE dashboard from a few minutes ago:

All the rigs are located on the same rack with filtered air from the outside blowing through the rack at 10,000 CFM and then being exhausted by a 2nd 10,000 CFM fan located high on an adjacent wall. Ambient temps are around 90 degrees F (it is hot where I am this time a year).

Look at GPU 3 on miner03. Fan is spinning at 87% yet the GPU temp is only 59 degrees. That fan should be spinning at closer to 50% I would think and still be able to maintain temps below 60 degrees. GPU 1 on miner03 also seems to be running a fan speed much higher than it needs to.

I use all default values except my max temp is set to 71 degrees instead of the default which I believe was 65 degrees.

Ignore miner05 since all those cards are watercooled. Ditto for the low temp GPUs in some of the other rigs (which are mixed with air cooled cards in the same rigs in some cases).

Anyway, very pleased with the script overall, but am curious about the behavior on miner03. Load averages are high, at above 8 atm. I wonder if that could have something to do with it?

I rebooted miner03 and miner04 and that gave me just the opposite problem. The GPU fans are now mostly running at 40% and the GPU’s are starting to overheat:

Here’s what -c is showing me:

After several more minutes:

So does the script only change the fan rpm by 1% every 30 seconds by default?