Overclocking

Overclocking

@forsbors

Скрипт первый:

#!/bin/bash

container_name="clore-default-"
command_on_start="nvtool --setclocks 1680 --setcoreoffset 210 --setmem 810 --setmemoffset 0 --setpl 380" # Тут меняй разгон, который быдет применяться во время майнинга в простое, ковычки оставь на месте, этот комент можно не удалять.
command_on_stop="nvtool --setclocks 0 --setcoreoffset 0 --setmem 0 --setmemoffset 0 --setpl 0" # Тут ничего менять не надо, это разгон, который будет применяться во время аренды, можно установить PL в допустимых 10-15%, 0 значит будет применено стоковое значение, т.е. без разгона, этот комент можно не удалять.

server_name="Rig10" # Тут меняй имя сервера, ковычки оставь на месте, этот комент можно не удалять.

container_started=false
container_stopped=true

while true; do
  container_id=$(docker ps --format "{{.Names}} {{.ID}}" | grep "$container_name" | awk '{print $2}')
  if [ -n "$container_id" ]; then
    # Контейнер запущен
    echo "$server_name Mining run, OC run, Rent stop"
    if ! $container_started; then
      eval "$command_on_start"
      container_started=true
      container_stopped=false
    fi
  else
    # Контейнер не запущен
    echo "$server_name Mining stop, OC stop, Rent start"
    if ! $container_stopped; then
      eval "$command_on_stop"
      container_stopped=true
      container_started=false
    fi
  fi
  sleep 30
done


Срипт второй:

#!/bin/bash

container_name="clore-default-"
command_on_start="nvtool --setclocks 1680 --setcoreoffset 210 --setmem 810 --setmemoffset 0 --setpl 380" # Тут меняй разгон, который быдет применяться во время майнинга в простое, ковычки оставь на месте, этот комент можно не удалять.
command_on_stop="nvtool --setclocks 0 --setcoreoffset 0 --setmem 0 --setmemoffset 0 --setpl 0" # Тут ничего менять не надо, это разгон, который будет применяться во время аренды, можно установить PL в допустимых 10-15%, 0 значит будет применено стоковое значение, т.е. без разгона, этот комент можно не удалять.

server_name="Rig10" # Тут меняй имя сервера, ковычки оставь на месте, этот комент можно не удалять.

container_started=false
container_stopped=true

bot_token="ВАШ_ТОКЕН_ТЕЛЕГРАМ_БОТА" # Сюда вставляй токен от телеграм бота, ковычки оставь на месте, этот комент можно не удалять.
chat_id="ВАШ_ЧАТ_ID" # Сюда вставляй свой чат ID, ковычки оставь на месте, этот комент можно не удалять.

# Функция для отправки сообщения в телеграм
send_telegram_message() {
  message="$1"
  curl -s -X POST https://api.telegram.org/bot$bot_token/sendMessage -d chat_id=$chat_id -d text="$message" > /dev/null
}

while true; do
  container_id=$(docker ps --format "{{.Names}} {{.ID}}" | grep "$container_name" | awk '{print $2}')
  if [ -n "$container_id" ]; then
    # Контейнер запущен
    if ! $container_started; then
      message="$server_name Mining run, OC run, Rent stop"
      echo "$message"
      send_telegram_message "$message"
      eval "$command_on_start"
      container_started=true
      container_stopped=false
    fi
    message="$server_name Mining run, OC run, Rent stop"
    echo "$message"
  else
    # Контейнер не запущен
    if ! $container_stopped; then
      message="$server_name Mining stop, OC stop, Rent start"
      echo "$message"
      send_telegram_message "$message"
      eval "$command_on_stop"
      container_stopped=true
      container_started=false
    fi
    message="$server_name Mining stop, OC stop, Rent start"
    echo "$message"
  fi
  sleep 30
done


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

Второй скрипт умееет все тоже самое, только еще при этом шлет оповещение в телеграм.

ВАЖНО! В данных скриптах для применения разгона используется nvtool? работает только в hive, в убунту этой утилиты нет, надо использовать nvidia-smi.

Теперь что с этим всем добром делать.
Идем к телеграм боту, с помощью него создаем себе телеграм бота. После создания получаем token to access the HTTP API, его надо будет вставить в указанное место в крипте.

Идем к телеграм боту, он выдаст ID вашего чата, его надо будет вставить в указанное место в крипте.

На своем сервере создаем файл oc.sh и открываем в редакторе:

sudo nano /home/user/oc.sh

Вставляем уже отредактированный скрипт:

Сохраняем Ctrl+S и выходим Ctrl+X.

Даем права на выполнение:

chmod +x /home/user/oc.sh

Запускаем:
screen -S oc /home/user/oc.sh

Чтобы выйти Ctrl+a+d, скрипт при этом продолжит работу. Чтобы завершить работу скрипта:

screen -S oc -X quit

Добавляем автозагрузку при старте системы:
crontab -e

в самом низу добавляем строчки:

# Автозапуск OC
@reboot sleep 120 && screen -dmS oc /bin/bash -c '/home/user/oc.sh; exec bash'

Сохраняем, выходим.

Изменить разгон можно следующим образом, даем команду

sed -i '/^command_on_start=/ s|command_on_start=".*"|command_on_start="nvtool --setclocks 1680 --setcoreoffset 210 --setmem 810 --setmemoffset 0 --setpl 380"|' /home/user/oc.sh

предварительно изменив значения разгона на какой вам требуется, в результате в файле oc.sh будет заменена соответствующая строка без необходимости открывать и редактировать файл. И далее перезапускаем скрипт командой:

source /home/user/oc.sh > /dev/null 2>&1

Таким образом завершать работу скрипта для внесения правок нет необходимости.



Report Page