XMRig — повний посібник
Мережа
| Коротка опція | Довга опція | Опис | Версія |
|---|---|---|---|
| -o | --url=URL | URL сервера майнінгу | Усі |
| -a | --algo=ALGO | алгоритм майнінгу | Усі |
| --coin=COIN | вказати монету замість алгоритму | 3.2.0+ | |
| -u | --user=USERNAME | ім'я користувача для сервера майнінгу | Усі |
| -p | --pass=PASSWORD | пароль для сервера майнінгу | Усі |
| -O | --userpass=U:P | пара username:password для сервера майнінгу | Усі |
| -x | --proxy=HOST:PORT | підключатися через SOCKS5-проксі | 5.7.0+ |
| -k | --keepalive | надсилати keepalive-пакети, щоб уникнути тайм-ауту (потрібна підтримка з боку пулу) | Усі |
| --nicehash | увімкнути підтримку nicehash | Усі | |
| --rig-id=ID | ідентифікатор ферми для статистики на боці пулу (потрібна підтримка з боку пулу) | 2.6.1+ | |
| --tls | увімкнути підтримку SSL/TLS (потрібна підтримка з боку пулу) | 2.8.0+ | |
| --tls-fingerprint=HEX | відбиток TLS-сертифіката пулу для суворої прив'язки сертифіката (pinning) | 2.8.0+ | |
| --dns-ipv6 | надавати перевагу IPv6-записам у відповідях DNS | 6.11.0+ | |
| --dns-ttl=N | TTL внутрішнього DNS-кешу в N секунд (за замовчуванням: 30) | 6.11.0+ | |
| --daemon | використовувати RPC демона замість пулу для соло-майнінгу | 3.0.0+ | |
| --daemon-poll-interval=N | інтервал опитування демона в мілісекундах (за замовчуванням: 1000) | 3.0.0+ | |
| --self-select=URL | самостійно отримувати шаблони блоків з URL (self-select) | 4.4.0+ | |
| --submit-to-origin | також надсилати рішення назад на self-select URL | 6.9.0+ | |
| -r | --retries=N | кількість повторних спроб перед перемиканням на резервний сервер (за замовчуванням: 5) | Усі |
| -R | --retry-pause=N | пауза між повторними спробами (за замовчуванням: 5) | Усі |
| --user-agent | задати власний рядок user-agent для пулу | 2.3.0+ | |
| --donate-level=N | рівень донату (комісії розробника), за замовчуванням 1% (1 хвилина на 100 хвилин) | Усі | |
| --donate-over-proxy=N | керування функцією донату через xmrig-proxy | 3.0.0+ |
Бекенд CPU
| Коротка опція | Довга опція | Опис | Версія |
|---|---|---|---|
| --no-cpu | вимкнути бекенд майнінгу на процесорі | 3.0.0+ | |
| -t | --threads=N | кількість потоків процесора. Для деяких оптимізацій потрібна правильна прив'язка до ядер (affinity). | Усі |
| --cpu-affinity=N | прив'язати процес до ядра (ядер) процесора, маска 0x3 — для ядер 0 і 1 | Усі | |
| -v | --av=N | варіант алгоритму, 0 — автовибір | Усі |
| --cpu-priority=N | задати пріоритет процесу (0 — найнижчий, 2 — звичайний, до 5 — найвищий) | 2.3.0+ | |
| --cpu-max-threads-hint=N | підказка для автоконфігурації: максимальна кількість потоків процесора (у відсотках) | 4.2.0+ | |
| --cpu-memory-pool=N | кількість сторінок по 2 MB для постійного пулу пам'яті, -1 (авто), 0 (вимкнути) | 4.3.0+ | |
| --cpu-no-yield | надавати перевагу максимальному хешрейту, а не відгуку/стабільності системи | 5.1.1+ | |
| --no-huge-pages | вимкнути підтримку huge pages | 2.3.0+ | |
| --hugepage-size=N | власний розмір huge page у kB (лише Linux) | 2.8.1+ | |
| --huge-pages-jit | увімкнути підтримку huge pages для JIT-коду RandomX | Усі | |
| --asm=ASM | ASM-оптимізації, можливі значення: auto, none, intel, ryzen, bulldozer | 2.8.0+ | |
| --argon2-impl=IMPL | реалізація argon2: x86_64, SSE2, SSSE3, XOP, AVX2, AVX-512F | 6.3.1+ | |
| --randomx-init=N | кількість потоків для ініціалізації датасету RandomX | 3.0.0+ | |
| --randomx-no-numa | вимкнути підтримку NUMA для RandomX | 3.0.0+ | |
| --randomx-mode=MODE | режим RandomX: auto, fast, light | 5.1.0+ | |
| --randomx-1gb-pages | використовувати huge pages по 1GB для датасету RandomX (лише Linux) | 5.2.0+ | |
| --randomx-wrmsr=N | записати власні значення в регістри MSR або вимкнути MSR-мод (-1) | 5.2.0+ | |
| --randomx-no-rdmsr | не відновлювати початкові значення MSR під час виходу | 5.5.0+ | |
| --randomx-cache-qos | увімкнути Cache QoS | 6.3.1+ |
Бекенд OpenCL
| Коротка опція | Довга опція | Опис | Версія |
|---|---|---|---|
| --opencl | увімкнути бекенд майнінгу OpenCL | 5.0.0+ | |
| --opencl-devices=N | список OpenCL-пристроїв для використання, через кому | 5.0.0+ | |
| --opencl-platform=N | індекс або назва платформи OpenCL | 5.0.0+ | |
| --opencl-loader=PATH | шлях до OpenCL-ICD-Loader (OpenCL.dll або libOpenCL.so) | 5.0.0+ | |
| --opencl-no-cache | вимкнути кеш OpenCL | 5.0.0+ | |
| --print-platforms | вивести доступні платформи OpenCL і вийти | 5.0.0+ |
Бекенд CUDA
| Коротка опція | Довга опція | Опис | Версія |
|---|---|---|---|
| --cuda | увімкнути бекенд майнінгу CUDA | 5.0.0+ | |
| --cuda-loader=PATH | шлях до плагіна CUDA (xmrig-cuda.dll або libxmrig-cuda.so) | 5.0.0+ | |
| --cuda-devices=N | список CUDA-пристроїв для використання, через кому | 5.0.0+ | |
| --cuda-bfactor-hint=N | підказка bfactor для автоконфігурації (0-12) | 5.0.1+ | |
| --cuda-bsleep-hint | підказка bsleep для автоконфігурації | 5.0.1+ | |
| --no-nvml | вимкнути підтримку NVML (NVIDIA Management Library) | 5.0.0+ |
API
| Коротка опція | Довга опція | Опис | Версія |
|---|---|---|---|
| --api-worker-id=ID | власний worker-id для API | 2.4.0+ | |
| --api-id=ID | власний ID екземпляра для API | 2.4.0+ | |
| --http-host=HOST | хост для HTTP API (за замовчуванням: 127.0.0.1) | 5.0.0+ | |
| --http-port=N | порт для HTTP API | 5.0.0+ | |
| --http-access-token=T | токен доступу до HTTP API | 5.0.0+ | |
| --http-no-restricted | увімкнути повний віддалений доступ до HTTP API (лише якщо задано токен доступу) | 5.0.0+ |
Журналювання
| Коротка опція | Довга опція | Опис | Версія |
|---|---|---|---|
| -S | --syslog | виводити повідомлення в системний журнал | Усі |
| -l | --log-file=FILE | записувати весь вивід у файл | Усі |
| --print-time=N | виводити звіт про хешрейт кожні N секунд | Усі | |
| --health-print-time=N | виводити звіт про стан обладнання кожні N секунд | 5.0.0+ | |
| --no-color | вимкнути кольоровий вивід | Усі | |
| --verbose | докладний вивід | 5.4.0+ |
Інше
| Коротка опція | Довга опція | Опис | Версія |
|---|---|---|---|
| -c | --config=FILE | завантажити файл конфігурації у форматі JSON | Усі |
| -B | --background | запустити майнер у фоновому режимі | Усі |
| -V | --version | вивести інформацію про версію і вийти | Усі |
| -h | --help | показати цю довідку і вийти | Усі |
| --dry-run | перевірити конфігурацію і вийти | Усі | |
| --export-topology | експортувати топологію hwloc у XML-файл і вийти | 3.0.0+ | |
| --title | задати власний заголовок вікна консолі | 6.0.1+ | |
| --no-title | не змінювати заголовок вікна консолі | 6.0.1+ | |
| --pause-on-battery | призупиняти майнінг під час роботи від батареї | 6.3.1+ | |
| --pause-on-active=N | призупиняти майнінг, коли користувач активний (відновлювати через N секунд після останньої активності) | 6.9.0+ | |
| --stress | запустити безперервний стрес-тест для перевірки стабільності системи | 6.4.0+ | |
| --bench=N | запустити бенчмарк, N може бути від 1M до 10M | 6.4.0+ | |
| --submit | виконати онлайн-бенчмарк і надіслати результат для публікації | 6.5.0+ | |
| --verify=ID | перевірити надісланий бенчмарк за ID | 6.5.0+ | |
| --seed=SEED | власний seed RandomX для бенчмарку | 6.5.0+ | |
| --hash=HASH | порівняти результат бенчмарку із заданим хешем | 6.5.0+ | |
| --no-dmi | вимкнути зчитування DMI/SMBIOS | 6.8.0+ |
Вимоги до обсягу пам'яті
2080 MB на один NUMA-вузол для датасету; 1 NUMA-вузол зазвичай відповідає 1 сокету процесора, кількість вузлів майнер показує під час запуску.
256 MB для кешу на першому NUMA-вузлі.
256 KB кешу L2 і 2 MB кешу L3 на 1 потік майнінгу.
Вимоги до кешу процесора — головна причина, через яку майнер не використовує всі потоки на більшості процесорів (дуже поширене запитання). У Windows 4GB пам'яті може не вистачити для системи і майнера.
Є кілька способів збільшити або зменшити вимоги до пам'яті:
Huge pages по 1GB у Linux збільшують вимоги до пам'яті до 3GB (3 сторінки) на NUMA-вузол і підвищують хешрейт на 1-3%.
Вимкнути підтримку NUMA можна параметром "numa": false в об'єкті "randomx" — тоді майнер використовуватиме лише 1 датасет, але хешрейт суттєво знизиться; якщо у вас лише 1 NUMA-вузол, ця опція ні на що не впливає.
Легкий режим RandomX (light) знижує вимоги до пам'яті до 256 MB, але працює дуже повільно; його можна увімкнути параметром "mode": "light", в об'єкті "randomx".
Може знадобитися кілька каналів пам'яті:
Пам'ять DDR3 обмежена приблизно 1500-2000 H/s на канал (залежно від частоти й таймінгів)
Пам'ять DDR4 обмежена приблизно 4000-6000 H/s на канал (залежно від частоти й таймінгів)
Huge Pages
Huge Pages можуть підвищити продуктивність RandomX до 50%, а huge pages по 1GB (лише Linux) дають ще 1-3% хешрейту понад звичайні huge pages.
Hardware prefetchers MSR mod
Щоб отримати оптимальну продуктивність RandomX, потрібно вимкнути апаратні префетчери.
Cache QoS
Експериментальна функція, яка забороняє ядрам процесора, що не майнять, доступ до кешу L3, щоб зменшити їхній вплив на майнінг.
