Майнинг,  Статьи

Как устранить ошибку Segmentation fault при майнинге Ethereum

При майнинге на алгоритме Ethash в операционной системе Linux иногда появляется ошибка Segmentation fault (core dumped, или Segfault, ошибка сегментирования памяти):

В операционной системе Windows аналогичная ошибка проявляется сообщением “программа выполнила недопустимую операцию и будет закрыта” (This program has performed an illegal operation…).

Эта проблема возникает при попытке майнера (или другой программы) получить доступ или записать данные в сегмент памяти без наличия на это достаточных прав.

Она появляется в разных майнерах и обычно связана с некорректной работой подсистемы памяти, вызванной разными причинами, в том числе “случайно возникающими багами” (Heisenbug). В этом случае ошибка может исчезнуть сама по себе в случае изменения набора работающих программ, при запуске графического окружения на сервере (включении lightdm в системе xubuntu, работающей в консольном режиме) и т.д.

Возникновение fatal error в майнере иногда происходит из-за слишком агрессивного разгона, который особенно сильно проявляется при майнинге на пределе возможностей видеокарты, например, при полном заполнении ее физической памяти. При этом майнер с включенным watchdog пытается перезапустить процесс:

Другие видеокарты в майнере после появления ошибки сегментации также могут начинать давать ошибки:

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

Что делать при появлении ошибки Segmentation fault?

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

Кроме того, может помочь понижение интенсивности майнинга для конкретной видеокарты. В Phoenix miner понизить интенсивность можно, используя в командной строке параметр:

-mi

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

Если майнинг запускается в режиме zombie mode, когда дополнительно задействуется оперативная память компьютера, нужно убедиться, что ее хватает для всех процессов и майнеров.

Иногда стоит пожертвовать увеличенным хешрейтом при майнинге на процессоре на алгоритме RandomX (SFX и других) и отключить опцию резервирования оперативной памяти (большие страницы), а также randomx-1gb-pages в Linux.

Кроме того, на больших DAG в Phoenix miner некоторые видеокарты не работают с установленным по умолчанию значением daglim. В этом случае помогает уменьшение резерва для проблемной карты.

Например, можно установить 4076 Мб вместо 4078 и т.д. В других майнерах нужно использовать такую же тактику, например, для teamredminer это подгонка численного аргумента у параметра eth_4g_max_alloc.

Пример скрипта для майнинга на Ethash с DAG, близким к пределу доступной видеопамяти в Phoenix miner (в данном случае проблемы у четвертой видеокарты на 4 Гб):

sudo ./PhoenixMiner -pool eu1.ethermine.org:4444 -pool2 us1.ethermine.org:4444 -wal адрес.worker -eres 0 -r 1 -powlim 0 -proto 1 -cdm 1 -gwtime 100 -tt 56 -tstop 65 -ttli 62 -tstart 55 -fcm 2 -fanmin 55,40,40,40,40 -clkernel 1,1,1,1,1 -cdmport 3333 -acm -log 0 -gser 1 -lidag 2 -amd -rxboost 1 -stales 0 -daglim 4076,4076,4076,4064,4076

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *