Huge pages windows 10 включить

Обновлено: 05.07.2024

Оптимальная производительность PostgreSQL зависит от правильно определенных параметров операционной системы. Плохо настроенные параметры ядра ОС могут привести к снижению производительности сервера базы данных. Поэтому обязательно, чтобы эти параметры были настроены в соответствии с сервером базы данных и его рабочей нагрузкой. В этом посте мы обсудим некоторые важные параметры ядра Linux, которые могут повлиять на производительность сервера базы данных и способы их настройки.

SHMMAX / SHMALL


SHMMAX — это параметр ядра, используемый для определения максимального размера одного сегмента разделяемой памяти (shared memory), который может выделить процесс Linux. До версии 9.2 PostgreSQL использовал System V (SysV), для которой требуется настройка SHMMAX. После 9.2 PostgreSQL переключился на разделяемую память POSIX. Так что теперь требуется меньше байтов разделяемой памяти System V.

До версии 9.3 SHMMAX был наиболее важным параметром ядра. Значение SHMMAX задается в байтах.

Аналогично, SHMALL — это еще один параметр ядра, используемый для определения
общесистемного объема страниц разделяемой памяти (shared memory). Чтобы просмотреть текущие значения SHMMAX, SHMALL или SHMMIN, используйте команду ipcs.

SHM* Details — Linux


SHM* Details — MacOS X

Возможные ошибки неправильной конфигурации


Если SHMMAX настроен неправильно, вы можете получить ошибку при попытке инициализировать кластер PostgreSQL с помощью команды initdb.

initdb Failure

Аналогично, вы можете получить ошибку при запуске сервера PostgreSQL используя команду pg_ctl.

pg_ctl Failure

Понимание различий в определениях


Определение параметров SHMMAX/SHMALL немного отличается в Linux и MacOS X:

  • Linux: kernel.shmmax, kernel.shmall
  • MacOS X: kern.sysv.shmmax, kern.sysv.shmall


Команда sysctl может быть использована для временного изменения значения. Чтобы установить постоянные значения, добавьте запись в /etc/sysctl.conf. Подробности приведены ниже.

Изменение параметров ядра на MacOS X


Изменение параметров ядра на Linux

Не забудьте: чтобы сделать изменения постоянными, добавьте эти значения в /etc/sysctl.conf

Большие страницы (Huge Pages)

PostgreSQL поддерживает большие страницы только в Linux. По умолчанию Linux использует 4 КБ страниц памяти, поэтому в случаях, когда операций с памятью слишком много, необходимо устанавливать страницы большего размера. Наблюдается прирост производительности при использовании больших страниц размером 2 МБ и до 1 ГБ. Размер большой страницы может быть установлен во время загрузки. Вы можете легко проверить параметры большой страницы и их использование на вашем Linux-компьютере, используя команду cat /proc/meminfo | grep -i huge.

Получение информации о больших страницах (только на Linux)


В этом примере, хотя размер большой страницы установлен в 2048 (2 МБ), общее количество больших страниц имеет значение 0. Это означает, что большие страницы отключены.

Скрипт определения количества больших страниц


Это простой скрипт возвращает необходимое количество больших страниц. Запустите скрипт на вашем сервере Linux, пока работает PostgreSQL. Убедитесь, что для переменной среды $PGDATA задан каталог данных PostgreSQL.

Получение цифры требуемых больших страниц

Вывод скрипта выглядит следующим образом:

Вывод скрипта


Рекомендуемое значение больших страниц — 88, поэтому вы должны установить значение 88.

Установка больших страниц


Проверьте большие страницы сейчас, вы увидите, что большие страницы не используются (HugePages_Free = HugePages_Total).

Снова информация о больших страницах (только на Linux)


Теперь задайте параметр huge_pages «on» в $PGDATA/postgresql.conf и перезапустите сервер.

И снова информация о больших страницах (только на Linux)


Теперь вы можете видеть, что используются очень мало больших страниц. Давайте теперь попробуем добавить некоторые данные в базу данных.

Некоторые операции с базой данных для утилизации больших страниц

Давайте посмотрим, используем ли мы сейчас больше больших страниц, чем раньше.

Еще раз информация о больших страницах (только на Linux)

Теперь вы можете видеть, что большинство больших страниц используется.

Примечание: примерное значение для HugePages, используемое здесь, очень низкое, что не является нормальным значением для машины на продуктовой среде. Пожалуйста, оцените необходимое количество страниц для вашей системы и установите их соответственно в зависимости от нагрузки и ресурсов.

vm.swappiness


vm.swappiness — это еще один параметр ядра, который может влиять на производительность базы данных. Этот параметр используется для управления поведением подкачки (swappiness) (подкачки страниц в память и из нее) в Linux. Значение варьируется от 0 до 100. Он определяет, сколько памяти будет выгружено или выгружено. Ноль означает отключение обмена, а 100 означает агрессивный обмен.

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

Установка значения 0 в более новых ядрах может привести к тому, что OOM Killer (процесс очистки памяти в Linux) убьет процесс. Таким образом, можно безопасно установить значение 1, если хотите минимизировать подкачку. Значение по умолчанию в Linux — 60. Более высокое значение заставляет MMU (блок управления памятью) использовать больше пространства подкачки, чем ОЗУ, тогда как более низкое значение сохраняет больше данных/кода в памяти.

Меньшее значение — хорошая ставка на улучшение производительности в PostgreSQL.


Ранее я рассказал о том, как проверить и включить использование Hugepages в Linux.
Эта статья будет полезна, только если у вас действительно есть, где использовать Hugepages. Я встречал множество людей, которые обманываются перспективой того, что Hugepages волшебным образом повысят производительность. Тем не менее hugepaging является сложной темой, и при неправильном использовании он способен понизить производительность.

Проблема:
Необходимо проверить, включены ли HugePages в вашей системе.

Решение:
Оно довольно простое:

Вы получите что-то вроде этого:

Вы увидите список доступных опций (always, madvise, never), при этом текущая активная опция будет заключена в скобки (по умолчанию madvise).

madvise означает, что transparent hugepages включены только для областей памяти, которые явно запрашивают hugepages с помощью madvise(2).

always означает, что transparent hugepages включены всегда и для всех процессов. Обычно это повышает производительность, но если у вас есть вариант использования, где множество процессов потребляет небольшое количество памяти, то общая нагрузка на память может резко возрасти.

never означает, что transparent hugepages не будут включаться даже при запросе с помощью madvise. Чтобы узнать больше, обратитесь к документации ядра Linux.

Как изменить значение по умолчанию

Вариант 1: Напрямую изменить sysfs (после перезагрузки параметр вернется к значению по умолчанию):

Вариант 2: Измените системное значение по умолчанию, перекомпилировав ядро с измененной конфигурацией (этот вариант рекомендуется только если вы используете собственное ядро):

  • Чтобы поставить always по умолчанию, используйте:
  • Чтобы поставить madvise по умолчанию, используйте:

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

Обратите внимание, что мы говорим о 64-х разрядных x86 системах, работающих на Linux, и что я просто предполагаю, что система поддерживает transparent hugepages (так как не является недостатком то, что hugepages не подменяются), как это случается практически в любой современной среде Linux.

В ссылках ниже я прикреплю больше технического описания.

Виртуальная память

Если вы программист C++, вы знаете, что у объектов в памяти есть конкретные адреса (значения указателя).

Однако эти адреса необязательно отражают физические адреса в памяти (адреса в ОЗУ). Они представляют собой адреса в виртуальной памяти. Процессор имеет специальный модуль MMU (memory management unit), который помогает ядру сопоставлять виртуальную память с физическим местоположением.

Такой подход имеет множество преимуществ, но самые основные из них:

  • Производительность (по различным причинам);
  • Изоляция программ, то есть ни одна из программ не может читать из памяти другой программы.

Что такое страницы?

Виртуальная память поделена на страницы. Каждая отдельная страница указывает на определенную физическую память, она может указывать на область в оперативной памяти, а может на адрес, назначенный физическому устройству, например видеокарте.

Большинство страниц, с которыми вы имеете дело, указывают либо на ОЗУ, либо подменяются (swap), то есть хранятся на жестком диске или SSD. Ядро управляет физическим расположением каждой страницы. Если осуществляется доступ к подмененной странице, ядро останавливает поток, который пытается получить доступ к памяти, считывает страницу с жесткого диска/SSD в оперативную память, а затем продолжает выполнение потока.

Этот процесс прозрачен для потока, то есть он не обязательно читает напрямую с жесткого диска/SSD. Размер нормальных страниц – 4096 байт. Размер Hugepages – 2 мегабайта.

Буфер ассоциативной трансляции (TLB)

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

В ядре есть структура данных (таблица страниц), которая содержит всю информацию об используемых страницах. С помощью этой структуры данных можно сопоставить виртуальный адрес с физическим адресом.

Однако таблица страниц довольно сложна и работает медленно, поэтому мы просто не можем каждый раз анализировать всю структуру данных, когда какой-либо процесс обращается к памяти.

К счастью в нашем процессоре есть TLB, который кэширует сопоставление виртуальных и физических адресов. Это значит, что несмотря на то, что нам нужно проанализировать таблицу страниц при первой попытке получить доступ, все последующие обращения к странице могут обрабатываться в TLB, что обеспечивает быструю работу.

Поскольку он реализован в качестве физического устройства (что делает его в первую очередь быстрым), его емкость ограничена. Поэтому, если вы захотите получить доступ к большему количеству страниц, TLB не сможет хранить сопоставление для всех них, вследствие чего ваша программа будет работать намного медленнее.

Hugepages приходят на помощь

Итак, что мы можем сделать, чтобы избежать переполнения TLB? (Мы предполагаем, что программе все еще нужен тот же объем памяти).

Вот тут-то и появляются Hugepages. Вместо 4096 байт, требующих всего одну запись в TLB, одна запись в TLB теперь может указывать на колоссальные 2 мегабайта. Будем предполагать, что TLB имеет 512 записей, здесь без Hugepages мы можем сопоставить:

Тогда как с ними мы можем сопоставить:

Именно поэтому Hugepages – это круто. Они могут повысить производительность без значительного приложения усилий. Но здесь есть существенные оговорки.

Подмена Hugepages

Ядро автоматически отслеживает частоту использования каждой страницы памяти. Если физической памяти (ОЗУ) недостаточно, ядро переместит менее важные (реже используемые) страницы на жесткий диск, чтобы освободить часть ОЗУ для более важных страниц.
В принципе, то же самое касается и Hugepages. Однако ядро может менять местами только целые страницы, а не отдельные байты.

Предположим, у нас есть такая программа:

В этом случае ядру нужно будет подменить (прочитать) целых 2 мегабайта информации с жесткого диска/SSD только для того чтобы вы прочитали один байт. Что касается обычных страниц, с жесткого диска/SSD надо прочитать всего 4096 байт.

Поэтому, если hugepage подменяется, ее чтение происходит быстрее, только если вам нужно получить доступ ко всей странице. Это значит, что если вы пытаетесь получить доступ случайным образом к различным частям памяти и просто считываете пару килобайт, вам следует использовать обычные страницы и больше ни о чем не беспокоиться.

С другой стороны, если вам нужно получать доступ к большой части памяти последовательно, hugepages увеличат вашу производительность. Тем не менее, вам нужно проверить это самостоятельно (а не на примере абстрактного ПО) и посмотреть, что будет работать быстрее.

Аллокация в памяти

Если вы пишете на С, вы знаете, что вы можете запросить сколь угодно малые (или почти сколь угодно большие) объемы памяти из кучи с помощью malloc() . Допустим, вам нужно 30 байт памяти:

Программисту может показаться, что вы “запрашиваете” 30 байт памяти из операционной системы и возвращаете указатель на некоторую виртуальную память. Но на самом деле malloc () — это просто функция C, которая вызывает изнутри функции brk и sbrk для запроса или освобождения памяти из операционной системы.

Однако, запрашивать больше и больше памяти для каждой аллокации неэффективно; наиболее вероятно, что какой-либо сегмент памяти уже был освобожден (free()) , и мы можем повторно его использовать. malloc() реализует довольно сложные алгоритмы для повторного использования освобожденной памяти.

При этом для вас все происходит незаметно, так почему это должно вас волновать? А потому, что вызов free() не означает, что память обязательно возвращается сразу же операционной системе.

Существует такое понятие, как фрагментация памяти. В крайних случаях есть сегменты кучи, где используется только несколько байтов, в то время, как все, что находится между ними было освобождено (free()) .

Обратите внимание, что фрагментация памяти является невероятно сложной темой, и даже незначительные изменения в программе могут значительно повлиять на нее. В большинстве случаев программы не вызывают значительной фрагментации памяти, но вы должны иметь ввиду, что если с фрагментацией в некоторой области кучи возникла проблема, hugepages могут только усугубить ситуацию.

Выборочное применение hugepages

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

К счастью, вы можете использовать madvise() , чтобы включить hugepaging только для тех областей памяти, где это будет полезно.

Для начала, проверьте, что hugepages работают в режиме madvise(), с помощью инструкции в начале статьи.

Затем, используйте madvise() , чтобы указать ядру, где именно использовать hugepages.

Обратите внимание, что этот метод — просто рекомендации ядру по управлению памятью. Это не означает, что ядро будет автоматически использовать hugepages для заданной памяти.

Обратитесь к документации (manpage) madvise, чтобы узнать больше об управлении памятью и madvise() , у этой темы невероятно крутая кривая обучения. Поэтому, если вы намереваетесь действительно хорошо разобраться в ней, подготовьтесь к чтению и тестированию в течение нескольких недель, прежде чем рассчитывать на хоть какой-то положительный результат.

For Windows Professional, Enterprise, Ultimate or Server:

Please see this article on how large pages and TLBs affect memory latency and memory bandwidth:

COOL RASPBERRY PI PROJECTS WITH NODE.JS SOCKET.IO APPS

Search form is empty!

The solution is to download and install Windows Server 2003 Resource Kit Tools from microsoft website. The Microsoft Windows Server 2003 Resource Kit Tools are a set of tools to help administrators streamline management tasks such as troubleshooting operating system issues, managing Active Directory, configuring networking and security features, and automating application deployment.

Open and run the command prompt as an admin (right click and select from the menu)

In the command line write

you must replace mywindowsaccountemaillogin with your current windows username or email.

As result if everything is going well, the system will answer with this message:

Granting SeLockMemoryPrivilege to mywindowsaccountemaillogin . successful

Now reboot your PC!

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Эта политика Windows определяет, какие учетные записи могут использовать процесс для сохранения данных в физической памяти, чтобы система не отправляла страницы данных в виртуальную память на диске. This Windows policy determines which accounts can use a process to keep data in physical memory, preventing the system from paging the data to virtual memory on disk.

Блокировка страниц в памяти может повысить производительность, если требуется подкачка памяти на диск. Locking pages in memory may boost performance when paging memory to disk is expected.

Для включения этой политики для учетной записи, используемой SQL Server SQL Server , воспользуйтесь средством «Групповая политика Windows» (gpedit.msc). Use the Windows Group Policy tool (gpedit.msc) to enable this policy for the account used by SQL Server SQL Server . Чтобы изменить эту политику, необходимо быть системным администратором. You must be a system administrator to change this policy.

Включение параметра «Блокировка страниц в памяти» To enable the lock pages in memory option

В меню Пуск выберите команду Выполнить. On the Start menu, click Run. В окне Открыть введите gpedit.msc. In the Open box, type gpedit.msc.

В консоли Редактор локальных групповых политик разверните узел Конфигурация компьютера, затем узел Конфигурация Windows. On the Local Group Policy Editor console, expand Computer Configuration, and then expand Windows Settings.

Разверните узлы Настройки безопасностии Локальные политики. Expand Security Settings, and then expand Local Policies.

Выберите папку Назначение прав пользователя . Select the User Rights Assignment folder.

Политики будут показаны на панели подробностей. The policies will be displayed in the details pane.

На этой панели дважды щелкните параметр Блокировка страниц в памяти. In the pane, double-click Lock pages in memory.

В диалоговом окне Выбор пользователей, учетных записей служб или групп выберите учетную запись службы SQL Server. In the Select Users, Service Accounts, or Groups dialog box, select the SQL Server Service account.

Чтобы этот параметр вступил в силу, перезапустите службу SQL Server. Restart the SQL Server Service for this setting to take effect.

При майнинге криптовалюты Monero и ряда других монет на процессорах можно добиться серьезного увеличения хешрейта при включении поддержки адресации больших страниц памяти (huge pages в Linux или large pages в Windows).

Опция закрепления страниц в памяти отдает приоритет хранению данных приложения в быстродействующей оперативной физической памяти. Благодаря этому сокращается количество операций постраничного разбиения данных и количество операций запись/чтение в виртуальной памяти (более медленной) на диске (в файл подкачки).

На алгоритме RandomX при майнинге Monero (XMR) закрепление страниц в памяти (huge/large pages) дает увеличение хешрейта порядка 30%, а в некоторых случаях и больше (50-60%).

Скриншот майнера xmrig с работающей адресацией huge pages в OS Windows:


Нужно понимать, что назначение всей свободной физической памяти одному или нескольким процессам может отобрать большую часть доступного ОЗУ в ущерб другим процессам.

В случае одновременного использования рига для майнинга на CPU и GPU это может спровоцировать замедление майнинга на видеокартах, отказы/зависания.

Для предотвращения проблем нужно верно расходовать ресурсы: не злоупотреблять большим количеством потоков майнинга на CPU (использовать один поток на каждые 2 Мб кеша L2), оставлять ресурсы для работы ОС и майнеров на GPU, периодически отслеживать производительность компьютера (например, в диспетчере задач).


.

В ОС типа Ubuntu для включения этой полезной опции нужно проделать ряд дополнительных телодвижений.

Зачем нужно включать поддержку huge pages в Ubuntu?

ОС Ubuntu заточена на экономное расходование ресурсов, а «пожирание» памяти майнером не является таковым. Поэтому для выделения майнеру ресурсов нужно «немного поработать напильником». Но это стоит затраченных усилий и времени.

Например, на древнем (2008 год) процессоре Xeon X3330 (2,6 ГГц), не умеющем вычислять по инструкциям AES, при майнинге Монеро на Random X хешрейт без huge pages равен 200-210 h/s (на двух потоках). При их включении скорость вычислений возрастает до порядка 270 h/s (выигрыш на 25-30%).

На более современных процессорах разница может быть еще более существенной.

Скриншот майнера xmrig, работающего без включения huge pages:


Рассмотрим подробнее, как проверить включена ли поддержка huge pages в Linux-подобных системах и как их задействовать для майнинга (на примере XUBUNTU 16.04).

Проверка ОС Ubuntu на предмет включения huge pages

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


В строке ответа системы в значении, заключенном в квадратные скобки, отображается наличие поддержки hugepages. Если высвечивается значение madvise, то в данной системе имеется поддержка huge pages . Если отображается значение [never], то данная система не имеет поддержки hugepages и стоит задуматься об апгрейде…

При наличии поддержки huge pages на аппаратном уровне нужно проверить, задействованы ли они и сколько страниц памяти зарезервировано. Для этого в терминале Ubuntu вводят команду:

Эта команда показывает число страниц памяти, которые ядро системы (kernel) выделяет (резервирует) на нужды пользователя.

Скриншот терминала, отображающего информацию о включении и числе выделенных hugepages:


Для включения, а также изменения количества выделенной физической памяти на постоянной основе используется изменение параметров ядра Ubuntu через файл конфигурации sysctl.conf.

Включение поддержки адресации huge pages в Ubuntu

В версии xmrig 5.2.0 и выше есть возможность включения поддержки huge pages на лету, но это требует рут-привилегий для программы-майнера.

Эту же операции для текущей сессии (до перезагрузки системы) можно сделать (с привилегиями root) командой:

Более разумно обеспечить работоспособность больших страниц памяти на этапе загрузки ядра с помощью конфигурационного файла sysctl.conf.

Это делается командой:

где 1280 – это число зарезервированных страниц памяти.

Можно сделать аналогичную операцию с помощью утилиты nano и команды:

В появившемся окне терминала нужно пролистать sysctl.conf до конца и вписать в него:


Затем нужно сохранить изменения (клавиши ctrl+O), нажать Enter, Ctrl+x и перезагрузить компьютер (sudo reboot).

Как подсчитать количество huge pages для выдления ядром системы Ubuntu?

Если зарезервировать слишком мало страниц, то майнер не будет работать в полную силу. Например, при резервировании 128 страниц xmrig показывает, что имеется всего 11% от необходимых 1168 страниц:



Исходя из информации в майнере, для его работы нужно 1168 страниц больших страниц памяти:

Майнер xmrig на RandomX с 1168 страницами памяти показывает вроде бы достаточное количество страниц, но все равно не использует их:


По рекомендациям разработчиков xmrig, для майнинга на алгоритмах типа RandomX нужно 1280 страниц на одну ноду NUMA и 128 страниц – для других алгоритмов.

Это совпадает с практикой, что видно на скрине майнера компьютера с выделенными 1280 hugepages:


Использование 1280 зарезервированных страниц означает, что в системе станет меньше на не менее 1280х2=2560 Мб доступной памяти (при стандартном размере страницы памяти в 2MB ).

Поэтому при ограниченном ОЗУ использование huge pages может привести к обратному эффекту – снижению хешрейта из-за нехватки физической памяти для нужд системы.

Вам также может понравиться


Майнинг на процессоре в 2019 году

Видеокарта Nvidia GTX 750Ti с точки зрения пригодности для майнинга в 2021 году


Последняя версия XMRig 6.2.0 уже доступна для скачивания для Windows и Linux (x64 bit) по ссылкам ниже:

XMRig — Программа для добычи монет на алгоритмах RandomX и CryptoNight. Подходит как для видеокарт семейства AMD и Nvidia, так и для процессоров.

Программа имеет комиссию разработчику в виде 1-5%. В данной пошаговой инструкции мы расскажем как настроить комиссию и батники для разных монет.

Что нового в XMRig 6.2.0?

  • Добавлен новый алгоритм cn/ccx для Conceal.
  • Исправлено, компоновщик в Linux (отмечал весь исполняемый файл как имеющий исполняемый стек).
  • Исправлено неработающее семейство алгоритмов CryptoNight с gcc 10.1

Изменения в v6.4.0:

Поддерживает алгоритмы:

ИмяПамятьВерсияПримечание
rx/arq256 KB4.3.0+RandomARQ (RandomX variant for ArQmA).
rx/02 MB3.2.0+RandomX (Monero).
argon2/chukwa512 KB3.1.0+Argon2id (Chukwa).
argon2/wrkz256 KB3.1.0+Argon2id (WRKZ)
rx/wow1 MB3.0.0+RandomWOW (RandomX variant for Wownero).
rx/loki2 MB3.0.0+RandomXL (RandomX variant for Loki).
cn/fast2 MB3.0.0+CryptoNight variant 1 with half iterations.
cn/rwz2 MB2.14.0+CryptoNight variant 2 with 3/4 iterations and reversed shuffle operation.
cn/zls2 MB2.14.0+CryptoNight variant 2 with 3/4 iterations.
cn/double2 MB2.14.0+CryptoNight variant 2 with double iterations.
cn/r2 MB2.13.0+CryptoNightR (Monero’s variant 4).
cn/wow2 MB2.12.0+CryptoNightR (Wownero).
cn/gpu2 MB2.11.0+CryptoNight-GPU.
cn-pico256 KB2.10.0+CryptoNight-Pico.
cn/half2 MB2.9.0+CryptoNight variant 2 with half iterations.
cn/22 MB2.8.0+CryptoNight variant 2.
cn/xao2 MB2.6.4+CryptoNight variant 0 (modified).
cn/rto2 MB2.6.4+CryptoNight variant 1 (modified).
cn-heavy/tube4 MB2.6.4+CryptoNight-Heavy (modified).
cn-heavy/xhv4 MB2.6.3+CryptoNight-Heavy (modified).
cn-heavy/04 MB2.6.0+CryptoNight-Heavy.
cn/12 MB2.5.0+CryptoNight variant 1.
cn-lite/11 MB2.5.0+CryptoNight-Lite variant 1.
cn-lite/01 MB0.8.0+CryptoNight-Lite variant 0.
cn/02 MB0.5.0+CryptoNight (original).

Основные особенности XMRig

XMRig – это высокопроизводительный майнер для криптовалюты Monero (XMR) на GPU и CPU с поддержкой, как Linux, так и Windows. Изначально был основан на cpuminer-multi, с большим количеством различных модификаций и улучшений, а также удалением большого количества устаревшего кода. Начиная с версии 1.0.0. – полностью переписан с нуля на C++

  • Высокая производительность
  • Поддержка ОС Windows
  • Небольшой размер исполняемого файла без зависимостей
  • Поддержка как 32-битных процессоров, так и 64-битных
  • Поддержка запасных пулов (на случай, если основной становится недоступным)
  • Задание опций для майнера через командную строку
  • Поддержка алгоритма CryptoNight, а также CryptoNight-Lite – для майнинга криптовалюты AEON
  • Автоматическая конфигурация настроек при старте майнера
  • Поддержка Nicehash
  • Открытый исходный код

Использование и Настройка

Предпочтительным способом настройки майнера является файл конфигурации JSON, так как он более гибкий и удобный для пользователя. Интерфейс командной строки не охватывает все функции, такие как профили майнинга для различных алгоритмов. Важные параметры могут быть изменены во время выполнения без перезагрузки майнера путем редактирования файла конфигурации или выполнения вызовов API.

Проверка хэшрейта

Вы можете проверить хэшрейт, результаты и статус Ваших видеокарт, используя два метода. Первый из консоли программы, а второй — с помощью API. По умолчанию XMRig отображает хэшрейт каждые 60 секунд, который вы можете изменить в настройках «print-time».


Команды: hashrate, health, pause, resume

Также в активном окне программе нажмите:

  1. «h», чтобы отобразить хэшрейт,
  2. нажмите «e», чтобы отобразить работоспособность вашего графического процессора,
  3. затем «p» для паузы
  4. «r», чтобы возобновить работу.

Если майнер подает шары на пул, тогда он сообщает «accepted». Если он говорит «rejected», то что-то не так с вашей конфигурацией. Пересмотрите ее.

Если у Вас по прежнему возникают трудности с запуском, пишите нам в комментарии — поможем!

В архиве с программой Вы найдете полную инструкцию на русском языке, а так же примеры настроек для разных монет.

Быстрый старт

Для того, что бы добывать монеты нужно:

  1. скачать программу
  2. разархивировать в любое удобное место
  3. отредактировать .bat файл с нужной монетой (поменять кошелек на свой)

Настройка xmrig для майнинга Monero

Для добычи монет на алгоритме randomx нам нужно создать или отредактировать готовый батник под нужную Вам монету. Это базовые настройки, которых достаточно для майнинга. Вторичные настройки рассмотрим позже.

Расшифровка содержимого батника

Пример батника для NiceHash:

Пример батника для AMD:

Пример батника для Nvidia:

Включение параметра «Блокировка страниц в памяти» Windows (large page)

Позвольте майнеру получить доступ к памяти. Данная настройка повышает хешрейт.

Откройте gpedit.msc

Если у вас Windows 10 Education / enterprise или Professional:

Нажмите «Выполнить» в меню пуск -> введите: «gpedit.msc» и нажмите Enter.

Прокрутите вниз до «Метод 1: Только для пользователей Windows 10» и следуйте инструкциям по загрузке и запуску .bat файла.

Перезагрузите компьютер в соответствии с инструкциями.

Нажмите «Выполнить» в меню пуск -> введите: «gpedit.msc» и нажмите enter.

В открытом gpedit:

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



включите блокировку страниц в памяти

Command line options

Как уменьшить комиссию?

По умолчанию XMRig жертвует 5% вашей мощности для разработчиков. Если вы щедры, то оставьте все как есть. Если вы хотите сами установить предпочтительную сумму пожертвования, то отредактируйте donate-level. Минимум 1%. Пример: –donate-level=1

Возникает после подключения к пулу и до получения шары. Ошибка возникает в некоторых версиях программы, когда она не может обработать новые драйверы AMD. Все, что необходимо сделать для решения этой проблемы, это скачать драйверы 17.x blockchain и установить их вместо текущих драйверов. Так же помогает снизить разгон.

cryptonight_extra_cpu_final

Эта ошибка решается путем снижения количества потоков (threads) и блоков (blocks). Пример:

No CUDA device found!

Эта ошибка возникает на видеокартах серии Nvidia. Программа не может инициализировать устройство. Решение:

  • проверить и переустановить драйвера,
  • использовать версию cuda-9_2 или cuda-8.0 (выбирается в зависимости от поколения видеокарты)

Rejected: “low difficulty share”

Это означает, что вы выбрали неверный порт пула. Вам приходят задания от пула с неправильной сложностью. Обязательно подключайтесь к правильному порту в зависимости от вашего оборудования. Обычно на пулах указываются несколько категорий портов: Для фермы из высокопроизводительных карт, для ферм из среднепроизводительных карт и для одной видеокарты, либо для домашнего пк.

Rejected: “Wrong algo, use monero7 miner”

Отклонено: «Неверный алгоритм, используйте monero7». Это означает, что вы ввели неправильный алгоритм или не смогли изменить вариант алгоритма. Вы также можете столкнуться с этой ошибкой, когда слишком сильно разгоняете свои видеокарты, поэтому имейте это в виду.

msvcp140.dll

Error: Exchange addresses need 64 hex character long payment IDs

Эта ошибка возникает тогда, когда пул требует указать адрес кошелька и PaymentID для монеты. Указать их можно вот так:

-u Адресс кошелька.PaymentID

Invalid address used for login

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

Мощность процессора

Программа по умолчанию задает мощность процессора в 75%, а это значит, что ваш процессор перегревается. Если вы знаете, что делаете и хотите получить максимальную производительность от CPU, то вы можете отредактировать значения max-cpu-usage. Если вы позволяете вашему процессору работать в ферме, то убедитесь, что вы контролируете его температуру.

Настройки потоков для CPU

Выше мы объяснили эти настройки для GPU, но вы так же можете установить потоки для CPU. Например, если вы используете мощный процессор, такой как AMD Ryzen Threadripper, вы можете перейти до 32 потоков.

Если вы новичок и не знаете, что это такое, то измените безопасные настройки на true. Сделав это, XMRig автоматически установит оптимальные настройки.

Читайте также: