Ошибка dag файла ethereum
Задачи не выполняются? DAG не работает? Журналы не находятся? У нас были те же самые проблемы. Вот список распространенных ошибок и некоторые соответствующие исправления, которые следует учитывать при отладке развертывания Airflow.
Apache Airflow стал ведущим планировщиком задач с открытым исходным кодом практически для любого вида работы, от обучения модели машинного обучения до общей оркестровки ETL. Это невероятно гибкий инструмент, который, как мы можем сказать по опыту, поддерживает критически важные проекты как для стартапов из пяти человек, так и для команд из списка Fortune 50.
С учетом сказанного, тот самый инструмент, который многие считают мощным "чистым холстом", может быстро стать обоюдоострым мечом, если вы только начинаете. И, к сожалению, нет особенно огромного богатства ресурсов и лучших практик на шаг или два выше базовых основ Apache Airflow.
Стремясь максимально заполнить этот пробел, мы собрали некоторые из наиболее распространенных проблем, с которыми сталкивается почти каждый пользователь, независимо от того, насколько опытна и многочисленна его команда. Независимо от того, являетесь ли вы новичком в Airflow или опытным пользователем, ознакомьтесь с этим списком распространенных ошибок и некоторыми соответствующими исправлениями, которые следует учитывать.
1. Ваш DAG не работает в необходимое время
Вы написали новый DAG, который должен запускаться каждый час. Вы устанавливаете почасовой интервал, начинающийся сегодня в 14:00, и устанавливаете напоминание, чтобы проверить его через пару часов. Вы проверяете его в 15:30 и обнаруживаете, что хотя ваш DAG действительно работал, в ваших журналах указано, что существует только одна записанная дата выполнения на 14:00. А что происходило в 3 часа дня?
Прежде чем вы перейдете в режим debug (вы не будете первым), будьте уверены, что это вполне ожидаемое поведение. Функциональность планировщика Airflow немного противоречит здравому смыслу (и вызывает некоторые разногласия в сообществе Airflow), но вы освоитесь. Две вещи:
- По замыслу Airflow DAG будет выполняться по завершении своего schedule_interval .
Это означает, что один schedule_interval выполняется ПОСЛЕ даты начала. Например, ежечасный DAG выполнит свой запуск в 2 часа дня, когда часы пробьют 3 часа дня. Причина здесь в том, что Airflow не может гарантировать, что все данные, соответствующие интервалу 2 часа дня, присутствуют до конца этого часового интервала.
Это специфический аспект для Airflow, но важно помнить о нем, особенно если вы используете переменные и макросы по умолчанию. - Время в Airflow по умолчанию указано в формате UTC.
Это не должно вызывать удивления, учитывая, что остальные ваши базы данных и API, скорее всего, также придерживаются этого формата, но это стоит уточнить.
Не следует ожидать, что выполнение ваших DAG-файлов будет соответствовать вашему местному часовому поясу. Если вы находитесь в тихоокеанском времени США, запуск DAG с 19:00 будет соответствовать 12:00 по местному времени.
Начиная с версии 1.10, Airflow фактически учитывает часовой пояс, но мы по-прежнему рекомендуем сохранять ваши DAGи с расчетом на временные метки UTC для согласованности.
2. Одна из ваших DAG не работает
Если рабочие процессы в вашем развертывании обычно выполняются без сбоев, но вы обнаруживаете, что один конкретный DAG не планирует задачи и не запускается вообще, это может иметь какое-то отношение к тому, как вы настроили ее для расписания.
Убедитесь, что у вас нет
datetime.now()
в значении переменой start_date .
Интуитивно понятно, что если вы скажете своему DAGу начать работу сейчас , она выполнится сейчас . НО, это не учитывает, как сам Airflow фактически читает datetime.now() .
Для выполнения DAG start_date должен быть временем в прошлом, иначе Airflow будет считать, что он еще не готов к выполнению. Когда Airflow оценивает ваш DAG, он интерпретирует datetime.now() как текущую метку времени (т.е. НЕ время в прошлом) и решает, что он не готов к запуску. Поскольку это будет происходить каждый раз, когда пульс Airflow будет оценивать ваш DAG каждые 5-10 секунд, он никогда не запустится.
Чтобы правильно запустить DAG, обязательно ставьте фиксированное время в прошлом (например, datetime(2019,1,1) ) и установите catchup=False (если вы не хотите запускать обратную засыпку).
Примечание. Вы можете вручную запустить DAG через пользовательский интерфейс Airflow прямо на панели управления (она выглядит как кнопка Play ). Ручной триггер выполняется немедленно и не прерывает регулярное планирование, хотя он будет ограничен любыми конфигурациями параллелизма, которые у вас есть на уровне DAG, уровне развертывания или уровне задачи. Когда вы посмотрите соответствующие журналы, run_id покажет manual__ вместо scheduled__ .
3. Вы видите ошибку 503 при развертывании
Если вы переходите к развертыванию Airflow только для того, чтобы понять, что ваш экземпляр полностью недоступен через веб-браузер, скорее всего, это как-то связано с вашим веб-сервером.
Если вы уже обновили страницу один или два раза и продолжаете видеть ошибку 503, прочтите ниже некоторые рекомендации, связанные с веб-сервером.
Ваш веб-сервер может дать сбой
Ошибка 503 обычно указывает на проблему веб-сервера (или проблему deployment в kubernetes), основным компонентом Airflow, отвечающим за отображение состояния задачи и журналов выполнения задач в интерфейсе Airflow. Если по какой-либо причине у него недостаточно мощности или иным образом возникла проблема, это может повлиять на время загрузки пользовательского интерфейса или доступность веб-браузера.
По нашему опыту, ошибка 503 часто указывает на то, что ваш веб-сервер дает сбой (например, в Astronomer в kubernetes это называется состоянием CrashLoopBackOff ). Если вы запускаете deployment в kubernetes, и вашему веб-серверу по какой-либо причине требуется больше нескольких секунд для запуска, он может не достичь периода ожидания (10 секунд по умолчанию), в котором он вылетит, прежде чем он успеет развернуться. Это вызывает повторную попытку, которая снова дает сбой и так далее.
Если ваше deployment находится в этом состоянии, возможно, ваш веб-сервер достигает предела памяти при загрузке ваших DAG (даже если ваши рабочие и планировщик продолжают выполнять задачи, как ожидалось).
Несколько замечаний
Вы пытались увеличить ресурсы своего веб-сервера?
Airflow 1.10 немного жаднее, чем Airflow 1.9, в отношении ЦП (использования памяти), поэтому мы видели недавний всплеск количества пользователей, сообщающих о 503-х ошибках. Помогает быстрое увеличение ресурсов, выделенных вашему веб-серверу.
Если вы используете Astronomer, мы рекомендуем поддерживать размер веб-сервера на отметке минимум 5 AU (Astronomer Units).
Как насчет увеличения периода ожидания веб-сервера?
Если увеличение ресурсов веб-сервера кажется неэффективным (не сходите с ума), вы можете попробовать увеличить web_server_master_timeout или web_server_worker_timeout .
Повышение этих значений укажет вашему веб-серверу Airflow подождать немного дольше для загрузки, прежде чем он покажет вам 503 ошибку (тайм-аут). Вы все равно можете пробовать медленную загрузку, если deployment на самом деле недостаточно мощно, но вы, вероятно, избежите попадания в 503.
Вы делаете запросы вне оператора?
Если вы выполняете вызовы API, запросы JSON или запросы к базе данных за пределами оператора с высокой частотой, вероятность тайм-аута вашего веб-сервера гораздо выше.
Когда Airflow интерпретирует файл для поиска любых допустимых DAG, он сначала немедленно запускает весь код на верхнем уровне (то есть вне операторов). Даже если сам оператор выполняется только во время выполнения, все, что вызывается вне оператора, вызывается при каждом такте, что может быть довольно утомительным.
Мы бы порекомендовали взять логику, которую вы в настоящее время выполняете вне оператора, и по возможности переместить ее внутрь оператора Python.
4. Задачи тасков периодически не работают
Это подводит нас к общей передовой практике, которую мы начали применять.
Будьте осторожны при использовании Sensors
Если вы используете Airflow 1.10.1 или более раннюю версию, датчики работают непрерывно и постоянно занимают слот для задач, пока не найдут то, что ищут, поэтому они имеют тенденцию вызывать проблемы с параллелизмом. Если у вас действительно никогда не бывает более нескольких задач, выполняемых одновременно, мы рекомендуем избегать их, если вы не знаете, что они не займут слишком много времени для выхода.
Например, если работник может одновременно запускать только X задач, а у вас работает три датчика (sensors?), то вы сможете запускать только X-3 задачи в любой заданный момент. Имейте в виду, что если вы постоянно используете датчик (sensors?), это ограничивает то, как и когда может произойти перезапуск планировщика (иначе датчик (sensors?) выйдет из строя).
В зависимости от вашего варианта использования мы предлагаем рассмотреть следующее:
Создайте DAG, который запускается с более частым интервалом.
Возможно, что задан тычок — и пропускает последующие задачи, если файл не найден.
2. Триггер лямбда-функции
Примечание: новая функция датчика Airflow v1.10.2 mode = reschedule решает эту проблему. Если у вас больше датчиков, чем рабочих слотов, датчик теперь будет переведен в новое состояние up_for_reschedule , что разблокирует рабочий слот.
5. Задачи выполняются, но становятся бутылочным горлышком
Если все выглядит так, как ожидалось, но вы обнаруживаете, что ваши задачи становятся бутылочным горлышком, мы рекомендуем внимательнее присмотреться к двум вещам: Ваши переменные Env и конфигурации, связанные с параллелизмом + ваши ресурсы Worker и Scheduler.
1. Проверьте свои переменные Env и связанные с параллелизмом (Concurrency) конфигурации
Какие именно эти значения должны быть установлены (и что может стать потенциальным узким местом), зависит от вашей настройки — например, вы запускаете несколько DAG одновременно или один DAG с сотнями одновременных задач? С учетом сказанного, их точная настройка, безусловно, может помочь решить проблемы с производительностью. Вот список того, что вы можете найти:
1. Параллелизм (параллелизм)
Это определяет, сколько экземпляров задач может активно выполняться параллельно (parallel) в нескольких DAG с учетом ресурсов, доступных в любой момент времени на уровне развертывания. Думайте об этом как о «максимально активных задачах в любом месте».
2. Concurrency DAG (dag_concurrency)
Это определяет, сколько экземпляров задач ваш планировщик может запланировать одновременно для каждой DAG. Думайте об этом как о «максимальном количестве задач, которые можно запланировать за один раз для каждой DAG».
3. Количество слотов задач без пула (Nonpooledtaskslotcount)
Когда пулы не используются, задачи запускаются в «пуле по умолчанию», размер которого определяется этим элементом конфигурации.
4. Максимальное количество активных запусков на DAG (maxactiverunsperdag)
Это говорит само за себя, но он определяет максимальное количество активных запусков DAG на DAG.
5. Concurrency воркеров (worker_concurrency)
Это определяет, сколько задач каждый воркер может запускать в любой момент времени. Например, CeleryExecutor по умолчанию будет одновременно выполнять не более 16 задач. Думайте об этом как о «Сколько задач каждый из моих воркеров может взять на себя в любой момент времени».
Важно отметить, что это количество, естественно, будет ограничено dagconcurrency. Если у вас есть 1 воркер и вы хотите, чтобы он соответствовал мощности вашего развертывания, workerconcurrency = parallelism .
6. Параллелизм (параллелизм)
- Не путать с приведенными выше настройками. «Параллелизм» здесь устанавливается на индивидуальном уровне DAG и определяет количество задач, которые могут выполняться одновременно в одном DAG. Это также может потребовать настройки, но это не будет работать, если оно определено как часть файла airflow.cfg .
Совет от профессионала: если вы рассматриваете возможность установить низкое число конфигураций параллелизма на уровне DAG или развертывания для защиты от ограничений скорости API, мы рекомендуем вместо этого использовать «пулы» — они позволят вам ограничить параллелизм на уровне задачи и выиграть t, ограничивать планирование или выполнение за пределами задач, которые в этом нуждаются.
2. Попробуйте увеличить масштаб планировщика или добавить воркера
Если задачи становятся узкими местами и все ваши конфигурации concurrency выглядят нормально, возможно, ваш Планировщик недостаточно мощный или ваше развертывание (deployment) может использовать другого воркера. Если вы используете Astronomer, мы обычно рекомендуем 5 AU в качестве минимума по умолчанию для Scheduler и 10 AU для ваших рабочих Celery, если они у вас есть.
Увеличите ли вы свои текущие ресурсы или добавите дополнительного работника, во многом зависит от вашего варианта использования, но мы обычно рекомендуем следующее:
- Если вы выполняете относительно большое количество легких задач в DAG и с относительно высокой частотой, вам, вероятно, лучше иметь 2 или 3 «легких» воркеров для распределения работы.
- Если вы выполняете меньше, но более тяжелые задачи с меньшей частотой, вам, вероятно, будет лучше с одним, но «более тяжелым» воркером, который может более эффективно выполнять эти задачи.
Для получения дополнительной информации о различиях между Executors ознакомьтесь с нашим Airflow Executors: Explained Guide.
6. У вас отсутствуют журналы
Вообще говоря, журналы не отображаются из-за процесса, который умер на одном из ваших рабочих процессов.
Вы можете увидеть что-то вроде следующего:
Несколько действий, которые стоит попробовать:
Повторите (удалите) задачу, если это возможно, чтобы увидеть, появляются ли журналы.
Это очистит / сбросит задачи и предложит снова их запустить
Измените log_fetch_timeout_sec на значение более 5 секунд (по умолчанию).
Это количество времени (в секундах), в течение которого веб-сервер будет ожидать начального рукопожатия (handshake) при получении журналов от других воркеров.
Дайте вашим воркерам немного больше прав
Если вы используете Astronomer, вы можете сделать это на вкладке Configure пользовательского интерфейса Astronomer.
Вы ищете журнал, сделанный более 15 дней назад?
Если вы используете Astronomer, период хранения журнала — это переменная среды, которую мы жестко запрограммировали на нашей платформе. На данный момент у вас не будет доступа к журналам, которым более 15 дней.
Вы можете выполнить команду в одном из своих воркеров Celery, чтобы найти там файлы журнала.
Эта функция предназначена только для корпоративных клиентов или людей, использующих Kubernetes.
После настройки Kubectl можно запустить: kubectl exec -it bash
Файлы журнала должны быть в
/logs . Оттуда они будут разделены на DAG/TASK/RUN .
Задачи медленно планируются или вообще перестали планироваться.
Если ваши задачи выполняются медленнее, чем обычно, вы захотите проверить, как часто вы устанавливаете свой планировщик для перезапуска. К сожалению, у Airflow есть хорошо известная проблема, из-за которой производительность планировщика со временем ухудшается и требуется быстрый перезапуск для обеспечения оптимальной производительности.
Если вы используете Astronomer, вы можете перезапустить планировщик следующим образом:
- Вставьте AIRFLOW__SCHEDULER__RUN_DURATION= в качестве переменной среды на странице настройки пользовательского интерфейса Astronomer для установки повторяющегося перезапуска ИЛИ
- Запустите astro airflow deploy через интерфейс командной строки для немедленного перезапуска всего (если вы используете Celery, вы можете воспользоваться периодом отсрочки прекращения воркера, который вы можете использовать здесь, чтобы свести к минимуму существующие немедленные сбои в выполнении задач)
Этот список основан на нашем опыте оказания помощи клиентам Astronomer в решении основных проблем с Airflow, но мы хотим услышать ваше мнение. Не стесняйтесь обращаться к нам по адресу [email protected], если мы пропустили что-то, что, по вашему мнению, было бы полезно включить.
Если у вас есть дополнительные вопросы или вы ищете поддержку Airflow от нашей команды, свяжитесь с нами здесь.
В феврале мы писали о том, что Antminer E3 перестал майнить Ethereum Classic. Проблема заключалась в DAG-файле, размер которого постоянно увеличивается. В этот раз в зоне риска оказались видеокарты на 4 ГБ. Накануне некоторые их владельцы не смогли майнить Ethereum и Ethereum Classic из-за того же DAG-файла. Рассказываем, как обойти ограничение для разного программного обеспечения и ферм.
Что такое DAG-файл?
Для понимания проблемы нужно окунуться в теорию. DAG — это большой файл, который необходим для майнинга Эфириума, Ethereum Classic и других монет на алгоритме Ethash. Он загружается в память видеокарт при каждом запуске майнера. Если у вас много GPU, все они делают это. В общем, без DAG майнинг на алгоритме Ethash работать не будет — это базовый принцип.
Размер DAG-файла постоянно увеличивается. Видеокарты с 2 ГБ памяти перестали справляться с майнингом Эфириума в конце 2016 года. Устройства на 3 ГБ сделали то же самое в конце 2018 года. И сейчас — в 2020 — с подобным начинают сталкиваться 4-гигабайтные видеокарты. Но не стоит переживать, из ситуации можно выйти.
Настройки для Phoenix Miner
Phoenix Miner — один из самых надёжных и простых решений для майнинга Ethash-монет. Он в том числе включён в архив для быстрого старта майнинга. Пароль — 2miners.
У Phoenix Miner есть специальный параметр -rvram. Он устанавливает объём зарезервированной памяти, которая не может использоваться для майнинга. По умолчанию он составляет 384 МБ для Windows и всего 128 МБ для Linux. Здесь всё просто: чтобы продолжить майнить Ethereum на видеокартах с 4 ГБ, необходимо отключить это разделение памяти. Для этого устанавливаем -rvram на 1.
Добавление параметра rvram
Майнеры из чата майнинг-пула 2Miners также рекомендуют для видеокарт AMD на Windows поставить драйвер 20.4.2 и установить утилиту AMD-Compute-Switcher. При такой конфигурации майнинг идет без потери скорости.
Итог: добавьте -rvram 1 в ваш .bat-файл, для Windows установите драйвер 20.4.2 и AMD-Compute-Switcher.
Настройки для Claymore’s Miner
Ещё один популярный майнер для добычи Ethash-монет на видеокартах AMD и Nvidia — Claymore’s. У Claymore’s есть так называемый параметр -eres. Он заранее выделяет память видеокарты для определённого количества эпох.
Напомним, эпоха обозначает рост объёма DAG-файла. Увеличение показателя в Ethash-монетах происходит каждые 30 тысяч блоков, а сама процедура известна как “смена эпохи”.
Если eres установлен на 2, программное обеспечение выделит память видеокарты, достаточную для майнинга в нынешней и следующих двух эпохах. После этого нужно будет снова перераспределить память. Увы, для каждой процедуры выделения памяти требуется время. Поэтому видеокарты с большим объёмом памяти могут использовать высокие значения eres, чтобы его сэкономить. А вот для карт с небольшим объёмом памяти схема обратная: нужно устанавливать eres на 0, чтобы GPU не выделяла под майнинг больше памяти, чем необходимо в данный момент.
К сожалению, размер DAG-файла вырос настолько, что нам не удалось запустить Claymore’s майнер на Windows на 4GB картах ни при каких условиях, увы. Используйте только Linux и параметр -eres 0.
Итог: Claymore’s майнер на Windows для 4GB больше нельзя использовать, даже если применять хитрые настройки.
Измените конфигурацию майнинг-фермы
Если ваша майнинг-ферма состоит из разных видеокарт, у некоторых из них наверняка больше памяти, чем у остальных. Так вот, поместите эти более продвинутые карты с большим объёмом памяти в первый x16 PCIe слот — также известный как нулевой слот.
Например, если у вас шесть видеокарт с 4 ГБ памяти и две с 8 ГБ, пусть одна из “восьмёрок” будет GPU0, то есть поместить её в нулевой слот. Ниже — изображение материнской платы ASUS Z270-P.
Итог: установите в нулевой слот видеокарту на 8 или 16 ГБ.
Перейдите с Windows на Linux
Windows требует больше памяти видеокарт, чем Linux — это факт. Если вы хотите и дальше использовать GPU на 4 ГБ, выбор операционной системы будет предельно важен. К слову, Phoenix и Claymore’s доступны для Linux.
Мы рекомендуем использовать один из специальных дистрибутивов Linux по типу HiveOS или SimpleMining OS. У них простой в использовании интерфейс для майнинга. Вдобавок у HiveOS есть предварительно настроенные файлы для всех пулов 2Miners, также известные как “полётные листы”. С ним процесс подготовки к майнингу будет ещё проще.
Итог: используйте Linux.
Когда мои видеокарты на 4 ГБ перестанут майнить Эфириум?
Даже если применить все перечисленные рекомендации, ваши видеокарты рано или поздно перестанут справляться с майнингом Ethereum и Ethereum Classic. Когда это произойдёт?
Мы предполагаем, что видеокарты на 4 ГБ перестанут майнить Ethash-монеты приблизительно на эпохе под номером 375. Естественно, с учётом конкретного оборудования и программного обеспечения это число может немного отличаться.
Для смены эпохи нужно 30 тысяч блоков, то есть эпоха 375 начнётся на блоке 11 250 000. Следить за нынешним номером блока можно на специальной странице. Вот ссылка для Эфириума, а вот — для ETC.
Нынешний блок в сети Эфириума
Сейчас сеть Эфириума на блоке 9 871 779.
11 250 000 - 9 781 779 = 1 378 221 (оставшихся блоков)
1 378 221 * 13 секунд = 17 916 873 секунды (среднее время блока в сети равно 13 секундам)
17 916 873 / 60 / 60 / 24 = 207 дней.
Если проделать те же вычисления для Ethereum Classic, который сейчас находится на высоте блока 10 187 286, получим 160 оставшихся дней на майнинг ETC на видеокартах с 4 ГБ.
Итог: видеокарты на 4 ГБ перестанут майнить Эфириум в январе 2021 года, а Ethereum Classic — в сентябре 2020 года.
Моя видеокарта больше не майнит Эфириум, что делать?
Если ваша видеокарта перестала справляться с майнингом Эфириума, выход всё равно есть. У других Ethash- монет — по типу CLO, ETP, PIRL и EXP — куда более ранняя эпоха, то есть их DAG-файл значительно меньше. Так что майнить эти монеты получится даже после того, как GPU не смогут майнить ETH и ETC.
Если у вас видеокарта Nvidia, вам будет немного легче, чем владельцам AMD-карт. Видеокарты от Nvidia обычно более гибкие и могут справляться с разными алгоритмами, а не только с Ethash. Хотя и устройства AMD с последней версией lolMiner выдают отличные результаты.
Конец 2020 года оказывается непростым для майнеров Эфириума. Дело в том, что 16 декабря — то есть начиная с эпохи 382 — криптовалюту перестали майнить все видеокарты с 4 ГБ памяти. Причиной этого является DAG-файл, размер которого постоянно увеличивается. К счастью, разработчики не сидят на месте и трудятся над вариантами решения проблемы. Один из них уже готов.
Напомним, DAG-файл — это блок данных, загружаемый в память видеокарты при запуске майнера. Именно благодаря ему идёт процесс майнинга: то есть устройства ищут решения блоков, гарантируют безопасность сети и вдобавок получают награду за выполненную работу.
DAG-файл постоянно увеличивается в размерах: речь идёт о приросте в 8 мегабайтов каждые 30 тысяч блоков. А значит со временем видеокарты попросту перестают справляться с файлом, из-за чего майнеры вынуждены переключаться на другие криптовалюты. Как мы уже отметили, в середине декабря очередь попрощаться с Эфириумом дойдёт и до видеокарт с 4 ГБ памяти. Однако благодаря усилиям разработчиков срок работы таких устройств получится продлить.
Что делать, если видеокарта не майнит Эфириум
Разработчики майнера lolMiner, с которым мы уже знакомы, в курсе проблемы, с которой скоро столкнутся обладатели видеокарт с 4 ГБ памяти. Поэтому они выпустили обновлённую версию программного обеспечения и добавили в него поддержку так называемого “зомби-режима” добычи криптовалюты. С его помощью видеокарты на 4 ГБ памяти смогут продолжить майнить Ethereum даже в начале 2021 года.
Почему именно зомби? Вот цитата разработчика проекта Вилке Трайа, также известного под ником Lolliedieb.
Меня спрашивали, почему именно зомби-режим. Ну, мне кажется, что этот термин более чем подходящий. Есть видеокарты, которые к определённой дате должны быть мертвы, но они продолжат майнить — пусть и с некоторой просадкой эффективности. Прямо как нежить (в мире видеокарт).
То есть майнинг Эфириума будет продолжаться, но с постепенно снижающейся эффективностью.
Нововведение действительно работает. В качестве доказательства девелопер представил скриншот, на котором он майнит криптовалюту в тестовой сети с эпохой 390. В данном случае нулевая видеокарта имеет 4 ГБ памяти — и она продолжает работать и выдавать хешрейт в 23 MH/s.
Вот заключение от разработчика.
В целом умещу идею в нескольких словах: это режим, который позволяет майнить Эфириум после эпохи 381 — именно она является последней, где видеокарты с 4 ГБ могут работать на полную мощность. Постепенно эффективность работы будет медленно снижаться. На эпохе 382 хешрейт будет составлять 95 процентов от максимального, а на 390 — 55 процентов. Увы, на 400 эпохе производительность будет эквивалентна всего 22 процентам, однако майнинг всё ещё будет продолжаться.
Соответственно, видеокарта будет выдавать больше 50 процентов эффективности в течение следующих одиннадцати эпох. А это где-то 60 дополнительных дней после официального прекращения добычи.
Для наглядности разработчик привёл таблицу эффективности работы видеокарт AMD RX 580, которая в нормальных условиях выдаёт хешрейт в 30 MH/s. 21 декабря показатель снизится до 27.63 MH/s — а это 92 процента от максимума.
Отдельно отметим, что зомби-режим будет работать как на Linux, так и на Windows. Впрочем, лучшие результаты будет показывать именно первая операционная система — это в том числе видно на таблице.
Есть ли смысл в майнинге не на полную мощность? Ещё как. Дело в том, что одновременно с видеокартами справляться с добычей Эфириума перестанут и ASIC-майнеры на 4 ГБ. Соответственно, хешрейт сети заметно просядет, после чего уменьшится и сложность майнинга. А значит, оставшиеся видеокарты на ETH будут приносить больше, чем они делали до этого. Здесь преимущества продолжения майнинга Эфириума более чем очевидны.
Вот цитата разработчика по этому поводу.
Куда деть все устройства на 4 ГБ? Сложность майнинга ETC, Beam и Ravencoin может взлететь до небес, так что 50 процентов прибыльности на видеокартах с 8 ГБ по-прежнему могут быть более выгодными, чем доходность многих альткоинов.
То есть разработчики предполагают, что в теории майнинг на видеокарте с 4 ГБ на неполной мощности после роста DAG-файла может быть даже выгоднее, чем на полную до этого события. Всё же после возникновения проблем майнеры будут вынуждены переводить свои мощности на другие криптовалюты, из-за чего майнить их будет значительно сложнее.
GPU на 4 ГБ перестала майнить Эфириум. Что делать?
Этот пункт был дописан 16 декабря 2020 года, когда видеокарты на 4 ГБ перестали справляться с майнингом Эфириума. Как и предполагалось, для продолжения добычи ETH стоит использовать майнеры с поддержкой уже упомянутого зомби-режима — TeamRedMiner, lolMiner и PhoenixMiner.
Эксперты пула 2Miners рекомендуют добавить определённые строки в дополнительную конфигурацию майнеров. Они регулируют количество выделяемой памяти видеокарты для добычи криптовалюты.
Для TeamRedMiner 0.7.20 указываем следующее:
Для lolMiner 1.16a приписываем такую комбинацию:
А для PhoenixMiner 5.4b добавляем это:
Вместо X можно указывать различные числа в диапазоне от 4068 до 4080 с шагом 2 в соответствии с возможностями видеокарты. Чем выше параметр, тем выше будет хешрейт. Однако одновременно с этим увеличивается шанс того, что майнер попросту не сможет начать полноценную работу и будет выдавать наименьший хешрейт. Соответственно, если при выбранном числе майнер не работает стабильно, попробуйте уменьшить его на 2 . Промежуток цифр обусловлен тем, что GPU на 4 ГБ могут обладать как 3896 и 3996 МБ, так и 4024 и 4096 МБ. Соответственно, для каждой модели параметр нужно подбирать вручную.
Советы по настройке майнинга на 4 ГБ видеокартах под HiveOS, RaveOS и других Linux системах
В дополнительную конфигурацию майнера добавить:
lolMiner 1.22 на AMD RX470, RX480, RX570, RX580 4 ГБ на слоте PCIx16
lolMiner 1.24 на AMD RX470, RX480, RX570, RX580 4 ГБ на слоте PCIx16
Возможные варианты для PhoenixMiner: -daglim 1 -rmode 0 -eres 0 -rvram -1 или просто: -daglim 1 -rmode 0
Майнинг Ethereum Classic на видеокартах с 4 ГБ
Вилке отмечает, что пока зомби-режим доступен только для видеокарт от AMD, а поддержка Nvidia появится в ближайшем времени.
Поддержка Windows тоже есть, причём запустить майнинг на ней получилось без проблем. При тестировании майнинга Ethereum Classic видеокарта выдавала 17.32 MH/s вместо стандартных 21.5 MH/s. А это вполне допустимое проседание.
Соответственно, майнить ETC на видеокартах с 4 ГБ всё ещё реально, то есть у владельцев такого оборудования появляется выбор. Напомним, скоро разработчики Ethereum Classic планируют уменьшить DAG-файл и позволить майнить криптовалюту картам с 3 ГБ памяти. Мы писали об этом в отдельном материале.
Единственный параметр, который можно изменять в настройках при зомби-майнинге — это так называемый “keepfree”. Он означает количество мегабайтов, который майнер не будет использовать и зарезервирует для работы системы.
По умолчанию параметр сохраняет 56 мегабайтов для Windows и 5 мегабайтов для Linux. Их отображает такие настройки bat-файла для Windows.
А вот комбинация для Linux.
Разработчик отмечает, что если всё работает нормально, а майнинг идёт, можно ничего не редактировать. Если возникают проблемы, нужно провести бенчмарк с помощью следующей команды. Вот код для Windows.
lolMiner.exe --benchmark ETHASH --benchepoch 385 --keepfree 56
./lolMiner --benchmark ETHASH --benchepoch 385 --keepfree 5
Решение принимаем в соответствии с поведением майнера. Если он зависает, стоит увеличить keepfree на 8 мегабайтов и запустить его снова.
Для повышения производительности можно попробовать уменьшить показатель на те же 8 мегабайтов, то есть 48 МБ для Windows и 0 для Linux. Если работает — отлично, попробуйте опустить ещё. И так до тех пор, пока майнер запускается и работает адекватно.
Новость от разработчиков lolMiner однозначно позитивная. Она подтверждает, что майнинг Эфириума продлится дольше, чем должен, а значит владельцы видеокарт смогут зарабатывать и дальше. Хочется верить, что подобный подход будет внедряться и для других криптовалют в дальнейшем.
В частности, разработчики TeamRedMiner запустили версию майнера 0.7.14, где появился так называемый "расширенный майнинг". Это та же идея, которую предлагает зомби-режим, то есть компромисс между эффективностью работы видеокарты и возможностью работы в целом.
У видеокарт с 4 ГБ видеопамяти проблема в том, что размер DAG-файла уже становится слишком большим.
Операционная система Windows 10 занимает около 0,5 ГБ видеопамяти, а DAG-эпоха уже слишком велика, и программы начинают забирать память из системной памяти, поэтому скорость замедляется с 27-28 до 19-20 Mh/s.
Как уменьшить зарезервированный объем VRAM Windows 10
Существует обходной путь для борьбы с веским DAG-файлом.
Если вы активируете iGPU (внутренний gpu в вашем процессоре) и используете hdmi на материнской плате, то Windows не выделит эту память из ваших 4 ГБ видеокарт.
Если у вас нет внутренней графики на вашем процессоре, обходной путь сработает, если вы установите в качестве главной видеокарты с памятью более 4 ГБ ( или дополнительную карточку, которую вы используете только для заглушки, для отрисовки Windows, а не для майнинга ).
Вставьте HDMI в материнскую плату, а не в видеокарту
Вариант с картой - заглушкой:
Подойдет любая, самая дешевая карта
Второй вариант – указать эпохи вручную
Для управления DAG-файлом и его эпохами в программах PhoenixMiner и Claymore Dual Miner существуют следующие команды:
-eres - установить количество DAG эпох, для которых программа будет резервировать буфер.
Значения: 0 - если у видеокарт мало видеопамяти (4 ГБ);
1; 2 (по умолчанию)
Имитировать эпоху можно с помощью параметра -benchmark 353 в Claymore, где 353 - номер эпохи
-lidag (значение) - замедлить генерацию DAG, чтобы избежать сбоев при переключении DAG эпох (0-3, по умолчанию:0 - быстро, 3 - медленно).
Можно указать для отдельных карт. В настоящее время опция работает только на картах AMD
-gser - инициализировать создание DAG на нескольких видеокартах (0 - Нет инициализации, все видеокарты генерируют DAG одновременно (по умолчанию);
1-частичное перекрытие генерации DAG на каждой карте;
2 - отсутствие перекрытия (каждая карта ждет, пока предыдущая закончит генерацию DAG);
3-10 - от 1 до 8 секунд задержки после каждого построения DAG перед следующим)
Не забудьте выставить файл подкачки на максимум. В некоторых случаях это тоже помогает.
Следующие команды только для PhoenixMiner:
-rvram - установить минимально зарезервированную VRAM, которую нельзя использовать для майнинга. Значения по умолчанию - 384 МБ в Windows и 128 МБ в Linux.
Вы также можете установить -rvram -1 , если хотите отключить защиту от использования слишком большого количества VRAM.
-dagrestart (значение) перезапустить майнер при выделении буфера для новой DAG эпохи. Возможные значения: 0 - никогда, 1 - всегда, 2 - автоматически (майнер принимает решение в зависимости от версии драйвера). Это относится к картам AMD на 4 ГБ, у которых могут быть проблемы с новыми DAG эпохами после эпохи 350.
Третий вариант – обновить софт
Разные версии программ потребляют разный объем видеопамяти. К примеру:На Windows 10 4 ГБ видеокарты в данный момент еще работают. И должны работать до конца лета, если не обновятся программы.
hive os, MinerBabe и т. д.) резервируют меньше видеопамяти, чем системы на Windows (порядка 22 МБ или 128 МБ против 384 МБ). Хотя они и платные, однако это тоже может быть кратковременным решением проблемы.
Пятый вариант – добывать другие монеты
Ни единым ETH и ETC жив майнинг. И хотя Ethereum и Ethereum Classic – это лучшее, что есть на Ethash алгоритме, лучше поискать другие альткоины, чем фермы будут простаивать.
-
- 2,1 Гб - 1.13 GB - 1.24 GB - 1.41 GB - 1.42 GB - 1.45 GB - 1.57 GB - 1.68 GB - 1.75 GB
- Mix Blockchain - 1.85 GB - 2.02 GB - 2,59 Гб
Важно сразу продавать эти монеты потому, что в отличии от ETH они могут в любой момент соскамитсья!
Шестой вариант – продать карты заранее и перезайти с 8 ГБ картами
Наиболее разумный вариант. Пока рынок оживает в преддверии халвинга BTC и рынок видеокарт не перенасыщен предложением, имеет смысл продать старые 4 ГБ карты и купить вместо них 8 ГБ.
Обо всем этом и о многих других важных вещах мы говорили на нашем канале. Подписывайтесь, кто еще не подписался!
Решение ошибки Not enough GPU memory to place DAG, you cannot mine this coin with this GPU
Для видеокарт с 4 ГБ видеопамяти проблема заключается в том, что размер файла DAG уже становится слишком большим.
Операционная система Windows 10 занимает около 0,5 ГБ видеопамяти, а файл DAG уже слишком велик, и программы начинают извлекать память из системной памяти, поэтому скорость замедляется с 27-28 до 19-20 Mh/s. Или вы увидите ошибку: «Not enough GPU memory to place DAG, you cannot mine this coin with this GPU».
Теоретически, карты с 4 ГБ должны прекратить майнинг (eth) 10 декабря 2021 года, но на практике это произойдет намного раньше.
Шаг 1 - Уменьшите зарезервированное количество VRAM, используя встроенную графику, либо с помощью дополнительной самой дешевой карты.
Шаг 2 - Добавьте команду -eres 0 в start.bat
Шаг 3 - Вы можете использовать связку карт 8 ГБ вместе с 4 ГБ. По сути, поместите карту с 8 ГБ в слот PCIe 0, который является основным слотом x16 PCIe 3.0 (обычно это самый ближайший к процессору слот x16 на материнской плате), и вы можете поместить оставшуюся часть ваших карт 4 ГБ в другие слоты.
Шаг 4 - Одним из решений является установка более старых версий драйвера, которые выделяют меньше vRAM, как в версии 375.57. Или использование linux, который не выделяет столько памяти, и майнинг Ethereum. В Linux карты 4 ГБ все еще будут некоторое время работать на ETH и ETC. В Linux карты 4 ГБ будут работать дольше, пока не достигнут ограничения DAG файла. Как скачать и установить Linux (Ubuntu)
Шаг 5 - Обновите программное обеспечение (Claymore Dual Miner). На Claymore карты в связке 1 8Gb + оставшиеся 4 ГБ будут работать до 377 эпохи
Шаг 6 - Добывайте другие монеты - после превышения DAG файла в 4 ГБ, одна из Ethash монет займет место ETH и ETC. Конечно, главная монета для Ethash - Ethereum. Однако есть много других: QuarkChain, Metaverse, Callisto, Expanse, Dubaicoin, Soil и т. д. Ethash монеты
Проект Claymore представляет самые последние версии программного обеспечения (исправляет все ошибки и баги предыдущих версий)! Поэтому если у Вас старая версия, мы настоятельно советуем скачать последнюю версию Claymore's по ссылкам ниже, так как с каждым выходом новой версии добыча Эфира становится выгоднее!
Читайте также: