XMRig — pełny przewodnik
Sieć
| Krótka opcja | Długa opcja | Opis | Wersja |
|---|---|---|---|
| -o | --url=URL | adres URL serwera puli | Wszystkie |
| -a | --algo=ALGO | algorytm kopania | Wszystkie |
| --coin=COIN | podaje monetę zamiast algorytmu | 3.2.0+ | |
| -u | --user=USERNAME | nazwa użytkownika na serwerze puli | Wszystkie |
| -p | --pass=PASSWORD | hasło do serwera puli | Wszystkie |
| -O | --userpass=U:P | para nazwa_użytkownika:hasło dla serwera puli | Wszystkie |
| -x | --proxy=HOST:PORT | połączenie przez proxy SOCKS5 | 5.7.0+ |
| -k | --keepalive | wysyła pakiety keepalive, aby zapobiec przekroczeniu limitu czasu (wymaga obsługi przez pulę) | Wszystkie |
| --nicehash | włącza obsługę nicehash | Wszystkie | |
| --rig-id=ID | identyfikator riga do statystyk po stronie puli (wymaga obsługi przez pulę) | 2.6.1+ | |
| --tls | włącza obsługę SSL/TLS (wymaga obsługi przez pulę) | 2.8.0+ | |
| --tls-fingerprint=HEX | odcisk certyfikatu TLS puli do ścisłego przypinania certyfikatu | 2.8.0+ | |
| --dns-ipv6 | preferuje rekordy IPv6 z odpowiedzi DNS | 6.11.0+ | |
| --dns-ttl=N | TTL wewnętrznej pamięci podręcznej DNS w sekundach N (domyślnie: 30) | 6.11.0+ | |
| --daemon | używa RPC demona zamiast puli do kopania solo | 3.0.0+ | |
| --daemon-poll-interval=N | interwał odpytywania demona w milisekundach (domyślnie: 1000) | 3.0.0+ | |
| --self-select=URL | samodzielnie pobiera szablony bloków z URL | 4.4.0+ | |
| --submit-to-origin | wysyła rozwiązanie także z powrotem do URL self-select | 6.9.0+ | |
| -r | --retries=N | liczba ponownych prób przed przełączeniem na serwer zapasowy (domyślnie: 5) | Wszystkie |
| -R | --retry-pause=N | przerwa między ponownymi próbami (domyślnie: 5) | Wszystkie |
| --user-agent | ustawia własny ciąg user-agent dla puli | 2.3.0+ | |
| --donate-level=N | poziom dotacji (opłaty dewelopera), domyślnie 1% (1 minuta na 100 minut) | Wszystkie | |
| --donate-over-proxy=N | steruje funkcją dotacji przez xmrig-proxy | 3.0.0+ |
Backend CPU
| Krótka opcja | Długa opcja | Opis | Wersja |
|---|---|---|---|
| --no-cpu | wyłącza backend kopania na CPU | 3.0.0+ | |
| -t | --threads=N | liczba wątków CPU. Niektóre optymalizacje wymagają prawidłowego przypisania do rdzeni (affinity). | Wszystkie |
| --cpu-affinity=N | przypisuje proces do rdzeni CPU, maska 0x3 dla rdzeni 0 i 1 | Wszystkie | |
| -v | --av=N | wariant algorytmu, 0 — wybór automatyczny | Wszystkie |
| --cpu-priority=N | ustawia priorytet procesu (od 0 bezczynny, 2 normalny do 5 najwyższy) | 2.3.0+ | |
| --cpu-max-threads-hint=N | podpowiedź maksymalnej liczby wątków CPU (w procentach) dla autokonfiguracji | 4.2.0+ | |
| --cpu-memory-pool=N | liczba stron 2 MB dla stałej puli pamięci, -1 (auto), 0 (wyłączone) | 4.3.0+ | |
| --cpu-no-yield | stawia maksymalny hashrate ponad responsywność/stabilność systemu | 5.1.1+ | |
| --no-huge-pages | wyłącza obsługę huge pages | 2.3.0+ | |
| --hugepage-size=N | własny rozmiar hugepage w kB (tylko Linux) | 2.8.1+ | |
| --huge-pages-jit | włącza obsługę huge pages dla kodu JIT RandomX | Wszystkie | |
| --asm=ASM | optymalizacje ASM, możliwe wartości: auto, none, intel, ryzen, bulldozer | 2.8.0+ | |
| --argon2-impl=IMPL | implementacja argon2: x86_64, SSE2, SSSE3, XOP, AVX2, AVX-512F | 6.3.1+ | |
| --randomx-init=N | liczba wątków do inicjalizacji zbioru danych RandomX | 3.0.0+ | |
| --randomx-no-numa | wyłącza obsługę NUMA dla RandomX | 3.0.0+ | |
| --randomx-mode=MODE | tryb RandomX: auto, fast, light | 5.1.0+ | |
| --randomx-1gb-pages | używa hugepages 1GB dla zbioru danych RandomX (tylko Linux) | 5.2.0+ | |
| --randomx-wrmsr=N | zapisuje własne wartości do rejestrów MSR lub wyłącza MSR mod (-1) | 5.2.0+ | |
| --randomx-no-rdmsr | wyłącza przywracanie początkowych wartości MSR przy wyjściu | 5.5.0+ | |
| --randomx-cache-qos | włącza Cache QoS | 6.3.1+ |
Backend OpenCL
| Krótka opcja | Długa opcja | Opis | Wersja |
|---|---|---|---|
| --opencl | włącza backend kopania OpenCL | 5.0.0+ | |
| --opencl-devices=N | lista urządzeń OpenCL do użycia, rozdzielona przecinkami | 5.0.0+ | |
| --opencl-platform=N | indeks lub nazwa platformy OpenCL | 5.0.0+ | |
| --opencl-loader=PATH | ścieżka do OpenCL-ICD-Loader (OpenCL.dll lub libOpenCL.so) | 5.0.0+ | |
| --opencl-no-cache | wyłącza pamięć podręczną OpenCL | 5.0.0+ | |
| --print-platforms | wyświetla dostępne platformy OpenCL i kończy działanie | 5.0.0+ |
Backend CUDA
| Krótka opcja | Długa opcja | Opis | Wersja |
|---|---|---|---|
| --cuda | włącza backend kopania CUDA | 5.0.0+ | |
| --cuda-loader=PATH | ścieżka do wtyczki CUDA (xmrig-cuda.dll lub libxmrig-cuda.so) | 5.0.0+ | |
| --cuda-devices=N | lista urządzeń CUDA do użycia, rozdzielona przecinkami | 5.0.0+ | |
| --cuda-bfactor-hint=N | podpowiedź bfactor dla autokonfiguracji (0-12) | 5.0.1+ | |
| --cuda-bsleep-hint | podpowiedź bsleep dla autokonfiguracji | 5.0.1+ | |
| --no-nvml | wyłącza obsługę NVML (NVIDIA Management Library) | 5.0.0+ |
API
| Krótka opcja | Długa opcja | Opis | Wersja |
|---|---|---|---|
| --api-worker-id=ID | własny worker-id dla API | 2.4.0+ | |
| --api-id=ID | własny identyfikator instancji dla API | 2.4.0+ | |
| --http-host=HOST | host nasłuchu HTTP API (domyślnie: 127.0.0.1) | 5.0.0+ | |
| --http-port=N | port nasłuchu HTTP API | 5.0.0+ | |
| --http-access-token=T | token dostępu do HTTP API | 5.0.0+ | |
| --http-no-restricted | włącza pełny zdalny dostęp do HTTP API (tylko gdy ustawiono token dostępu) | 5.0.0+ |
Dziennik
| Krótka opcja | Długa opcja | Opis | Wersja |
|---|---|---|---|
| -S | --syslog | używa dziennika systemowego dla komunikatów | Wszystkie |
| -l | --log-file=FILE | zapisuje całe wyjście do pliku | Wszystkie |
| --print-time=N | wyświetla raport hashrate co N sekund | Wszystkie | |
| --health-print-time=N | wyświetla raport stanu sprzętu co N sekund | 5.0.0+ | |
| --no-color | wyłącza kolorowe wyjście | Wszystkie | |
| --verbose | szczegółowe wyjście | 5.4.0+ |
Różne
| Krótka opcja | Długa opcja | Opis | Wersja |
|---|---|---|---|
| -c | --config=FILE | wczytuje plik konfiguracyjny w formacie JSON | Wszystkie |
| -B | --background | uruchamia minera w tle | Wszystkie |
| -V | --version | wyświetla informacje o wersji i kończy działanie | Wszystkie |
| -h | --help | wyświetla tę pomoc i kończy działanie | Wszystkie |
| --dry-run | testuje konfigurację i kończy działanie | Wszystkie | |
| --export-topology | eksportuje topologię hwloc do pliku XML i kończy działanie | 3.0.0+ | |
| --title | ustawia własny tytuł okna konsoli | 6.0.1+ | |
| --no-title | wyłącza ustawianie tytułu okna konsoli | 6.0.1+ | |
| --pause-on-battery | wstrzymuje kopanie przy zasilaniu z baterii | 6.3.1+ | |
| --pause-on-active=N | wstrzymuje kopanie, gdy użytkownik jest aktywny (wznawia po N sekundach od ostatniej aktywności) | 6.9.0+ | |
| --stress | uruchamia ciągły test obciążeniowy, aby sprawdzić stabilność systemu | 6.4.0+ | |
| --bench=N | uruchamia benchmark, N może wynosić od 1M do 10M | 6.4.0+ | |
| --submit | wykonuje benchmark online i wysyła wynik do udostępnienia | 6.5.0+ | |
| --verify=ID | weryfikuje wysłany benchmark po ID | 6.5.0+ | |
| --seed=SEED | własny seed RandomX dla benchmarku | 6.5.0+ | |
| --hash=HASH | porównuje wynik benchmarku z podanym hashem | 6.5.0+ | |
| --no-dmi | wyłącza czytnik DMI/SMBIOS | 6.8.0+ |
Wymagania dotyczące pamięci
2080 MB na węzeł NUMA na zbiór danych; 1 węzeł NUMA to zwykle 1 gniazdo CPU, a miner przy starcie pokazuje liczbę węzłów.
256 MB na cache w pierwszym węźle NUMA.
256 KB pamięci L2 i 2 MB pamięci L3 na 1 wątek kopania.
Wymagania dotyczące pamięci cache CPU to główny powód, dla którego miner nie używa wszystkich wątków na większości procesorów (bardzo częste pytanie). W Windows 4 GB pamięci może nie wystarczyć dla systemu i minera.
Wymagania dotyczące pamięci można zwiększyć lub zmniejszyć na kilka sposobów:
Huge pages 1GB w Linuksie zwiększają wymagania do 3 GB (3 strony) na węzeł NUMA i podnoszą hashrate o 1-3%.
Wyłączenie obsługi NUMA przez "numa": false w obiekcie "randomx" sprawi, że miner użyje tylko 1 zbioru danych, ale znacznie obniży to hashrate; jeśli masz tylko 1 węzeł NUMA, ta opcja nic nie zmienia.
Tryb light RandomX zmniejsza wymagania do 256 MB, ale jest bardzo wolny; włączysz go przez "mode": "light" w obiekcie "randomx".
Może być potrzebnych kilka kanałów pamięci:
Pamięć DDR3 ogranicza wydajność do około 1500-2000 H/s na kanał (zależnie od taktowania i timingów)
Pamięć DDR4 ogranicza wydajność do około 4000-6000 H/s na kanał (zależnie od taktowania i timingów)
Huge Pages
Huge Pages mogą zwiększyć wydajność RandomX nawet o 50%, a huge pages 1GB (tylko Linux) podnoszą hashrate o dodatkowe 1-3% ponad zwykłe huge pages.
Sprzętowe prefetchery — MSR mod
Aby uzyskać optymalną wydajność RandomX, musisz wyłączyć sprzętowe prefetchery.
Cache QoS
Eksperymentalna funkcja, która odbiera dostęp do pamięci L3 wszystkim rdzeniom CPU niebiorącym udziału w kopaniu, co zmniejsza zakłócenia kopania.
