XMRig — Guida completa
Rete
| Opzione breve | Opzione lunga | Descrizione | Versione |
|---|---|---|---|
| -o | --url=URL | URL del server di mining | Tutte |
| -a | --algo=ALGO | algoritmo di mining | Tutte |
| --coin=COIN | indica la moneta invece dell'algoritmo | 3.2.0+ | |
| -u | --user=USERNAME | nome utente per il server di mining | Tutte |
| -p | --pass=PASSWORD | password per il server di mining | Tutte |
| -O | --userpass=U:P | coppia nome_utente:password per il server di mining | Tutte |
| -x | --proxy=HOST:PORT | connessione tramite un proxy SOCKS5 | 5.7.0+ |
| -k | --keepalive | invia pacchetti keepalive per evitare il timeout (richiede il supporto del pool) | Tutte |
| --nicehash | attiva il supporto per nicehash | Tutte | |
| --rig-id=ID | identificativo del rig per le statistiche lato pool (richiede il supporto del pool) | 2.6.1+ | |
| --tls | attiva il supporto SSL/TLS (richiede il supporto del pool) | 2.8.0+ | |
| --tls-fingerprint=HEX | impronta del certificato TLS del pool per il pinning rigoroso del certificato | 2.8.0+ | |
| --dns-ipv6 | preferisce i record IPv6 nelle risposte DNS | 6.11.0+ | |
| --dns-ttl=N | TTL di N secondi (predefinito: 30) per la cache DNS interna | 6.11.0+ | |
| --daemon | usa l'RPC del daemon invece del pool per il solo mining | 3.0.0+ | |
| --daemon-poll-interval=N | intervallo di polling del daemon in millisecondi (predefinito: 1000) | 3.0.0+ | |
| --self-select=URL | selezione autonoma dei template dei blocchi dall'URL | 4.4.0+ | |
| --submit-to-origin | invia la soluzione anche all'URL di self-select | 6.9.0+ | |
| -r | --retries=N | numero di tentativi prima di passare al server di backup (predefinito: 5) | Tutte |
| -R | --retry-pause=N | pausa tra un tentativo e l'altro (predefinito: 5) | Tutte |
| --user-agent | imposta una stringa user-agent personalizzata per il pool | 2.3.0+ | |
| --donate-level=N | livello di donazione, predefinito 1% (1 minuto ogni 100 minuti) | Tutte | |
| --donate-over-proxy=N | controlla la funzione di donazione tramite xmrig-proxy | 3.0.0+ |
Backend CPU
| Opzione breve | Opzione lunga | Descrizione | Versione |
|---|---|---|---|
| --no-cpu | disattiva il backend di mining su CPU | 3.0.0+ | |
| -t | --threads=N | numero di thread della CPU. Per alcune ottimizzazioni serve una corretta affinità della CPU. | Tutte |
| --cpu-affinity=N | imposta l'affinità del processo ai core della CPU, maschera 0x3 per i core 0 e 1 | Tutte | |
| -v | --av=N | variante dell'algoritmo, 0 selezione automatica | Tutte |
| --cpu-priority=N | imposta la priorità del processo (da 0 inattiva, 2 normale, a 5 massima) | 2.3.0+ | |
| --cpu-max-threads-hint=N | suggerimento per l'autoconfigurazione sul numero massimo di thread della CPU (in percentuale) | 4.2.0+ | |
| --cpu-memory-pool=N | numero di pagine da 2 MB per il pool di memoria persistente, -1 (auto), 0 (disattiva) | 4.3.0+ | |
| --cpu-no-yield | privilegia l'hashrate massimo rispetto alla reattività/stabilità del sistema | 5.1.1+ | |
| --no-huge-pages | disattiva il supporto delle huge pages | 2.3.0+ | |
| --hugepage-size=N | dimensione personalizzata delle hugepage in kB (solo Linux) | 2.8.1+ | |
| --huge-pages-jit | attiva il supporto delle huge pages per il codice JIT di RandomX | Tutte | |
| --asm=ASM | ottimizzazioni ASM, valori possibili: auto, none, intel, ryzen, bulldozer | 2.8.0+ | |
| --argon2-impl=IMPL | implementazione di argon2: x86_64, SSE2, SSSE3, XOP, AVX2, AVX-512F | 6.3.1+ | |
| --randomx-init=N | numero di thread per inizializzare il dataset di RandomX | 3.0.0+ | |
| --randomx-no-numa | disattiva il supporto NUMA per RandomX | 3.0.0+ | |
| --randomx-mode=MODE | modalità di RandomX: auto, fast, light | 5.1.0+ | |
| --randomx-1gb-pages | usa hugepage da 1GB per il dataset di RandomX (solo Linux) | 5.2.0+ | |
| --randomx-wrmsr=N | scrive valori personalizzati nei registri MSR o disattiva la modifica MSR (-1) | 5.2.0+ | |
| --randomx-no-rdmsr | disattiva il ripristino dei valori MSR iniziali all'uscita | 5.5.0+ | |
| --randomx-cache-qos | attiva Cache QoS | 6.3.1+ |
Backend OpenCL
| Opzione breve | Opzione lunga | Descrizione | Versione |
|---|---|---|---|
| --opencl | attiva il backend di mining OpenCL | 5.0.0+ | |
| --opencl-devices=N | elenco separato da virgole dei dispositivi OpenCL da usare | 5.0.0+ | |
| --opencl-platform=N | indice o nome della piattaforma OpenCL | 5.0.0+ | |
| --opencl-loader=PATH | percorso di OpenCL-ICD-Loader (OpenCL.dll o libOpenCL.so) | 5.0.0+ | |
| --opencl-no-cache | disattiva la cache OpenCL | 5.0.0+ | |
| --print-platforms | stampa le piattaforme OpenCL disponibili ed esce | 5.0.0+ |
Backend CUDA
| Opzione breve | Opzione lunga | Descrizione | Versione |
|---|---|---|---|
| --cuda | attiva il backend di mining CUDA | 5.0.0+ | |
| --cuda-loader=PATH | percorso del plugin CUDA (xmrig-cuda.dll o libxmrig-cuda.so) | 5.0.0+ | |
| --cuda-devices=N | elenco separato da virgole dei dispositivi CUDA da usare | 5.0.0+ | |
| --cuda-bfactor-hint=N | suggerimento bfactor per l'autoconfigurazione (0-12) | 5.0.1+ | |
| --cuda-bsleep-hint | suggerimento bsleep per l'autoconfigurazione | 5.0.1+ | |
| --no-nvml | disattiva il supporto NVML (NVIDIA Management Library) | 5.0.0+ |
API
| Opzione breve | Opzione lunga | Descrizione | Versione |
|---|---|---|---|
| --api-worker-id=ID | worker-id personalizzato per l'API | 2.4.0+ | |
| --api-id=ID | ID di istanza personalizzato per l'API | 2.4.0+ | |
| --http-host=HOST | host di ascolto per l'API HTTP (predefinito: 127.0.0.1) | 5.0.0+ | |
| --http-port=N | porta di ascolto per l'API HTTP | 5.0.0+ | |
| --http-access-token=T | token di accesso per l'API HTTP | 5.0.0+ | |
| --http-no-restricted | attiva l'accesso remoto completo all'API HTTP (solo se è impostato il token di accesso) | 5.0.0+ |
Log
| Opzione breve | Opzione lunga | Descrizione | Versione |
|---|---|---|---|
| -S | --syslog | usa il log di sistema per i messaggi in uscita | Tutte |
| -l | --log-file=FILE | scrive tutto l'output in un file di log | Tutte |
| --print-time=N | stampa il report dell'hashrate ogni N secondi | Tutte | |
| --health-print-time=N | stampa il report sullo stato di salute ogni N secondi | 5.0.0+ | |
| --no-color | disattiva l'output a colori | Tutte | |
| --verbose | output dettagliato | 5.4.0+ |
Varie
| Opzione breve | Opzione lunga | Descrizione | Versione |
|---|---|---|---|
| -c | --config=FILE | carica un file di configurazione in formato JSON | Tutte |
| -B | --background | esegue il miner in background | Tutte |
| -V | --version | mostra le informazioni sulla versione ed esce | Tutte |
| -h | --help | mostra questo aiuto ed esce | Tutte |
| --dry-run | verifica la configurazione ed esce | Tutte | |
| --export-topology | esporta la topologia hwloc in un file XML ed esce | 3.0.0+ | |
| --title | imposta un titolo personalizzato per la finestra della console | 6.0.1+ | |
| --no-title | disattiva l'impostazione del titolo della finestra della console | 6.0.1+ | |
| --pause-on-battery | mette in pausa il mining quando si è a batteria | 6.3.1+ | |
| --pause-on-active=N | mette in pausa il mining quando l'utente è attivo (riprende dopo N secondi dall'ultima attività) | 6.9.0+ | |
| --stress | esegue uno stress test continuo per verificare la stabilità del sistema | 6.4.0+ | |
| --bench=N | esegue il benchmark, N può essere tra 1M e 10M | 6.4.0+ | |
| --submit | esegue un benchmark online e invia il risultato per condividerlo | 6.5.0+ | |
| --verify=ID | verifica tramite ID un benchmark inviato | 6.5.0+ | |
| --seed=SEED | seed RandomX personalizzato per il benchmark | 6.5.0+ | |
| --hash=HASH | confronta il risultato del benchmark con l'hash indicato | 6.5.0+ | |
| --no-dmi | disattiva la lettura DMI/SMBIOS | 6.8.0+ |
Requisiti di memoria
2080 MB per nodo NUMA per il dataset; 1 nodo NUMA di solito corrisponde a 1 socket della CPU, il miner mostra il numero di nodi all'avvio.
256 MB per la cache sul primo nodo NUMA.
256 KB di cache L2 e 2 MB di cache L3 per ogni thread di mining.
I requisiti di cache della CPU sono il motivo principale per cui il miner non usa tutti i thread sulla maggior parte delle CPU (domanda molto frequente). Su Windows 4GB di memoria potrebbero non bastare per il sistema e il miner.
Ci sono diversi modi per aumentare o ridurre i requisiti di memoria:
Le huge pages da 1GB su Linux aumentano i requisiti di memoria a 3GB (3 pagine) per nodo NUMA e aumentano l'hashrate dell'1-3%.
Disattivando il supporto NUMA con "numa": false nell'oggetto "randomx", il miner userà un solo dataset, ma l'hashrate si ridurrà notevolmente; se hai un solo nodo NUMA questa opzione non ha effetto.
La modalità light di RandomX riduce i requisiti di memoria a 256 MB, ma è molto lenta; si attiva con "mode": "light" nell'oggetto "randomx".
Potrebbero servire più canali di memoria:
La memoria DDR3 è limitata a circa 1500-2000 H/s per canale (a seconda della frequenza e dei timing)
La memoria DDR4 è limitata a circa 4000-6000 H/s per canale (a seconda della frequenza e dei timing)
Huge Pages
Le Huge Pages possono aumentare le prestazioni di RandomX fino al 50%; le huge pages da 1GB (solo Linux) aumentano l'hashrate di un ulteriore 1-3% rispetto alle huge pages normali.
Modifica MSR dei prefetcher hardware
Per ottenere le prestazioni ottimali di RandomX devi disattivare i prefetcher hardware.
Cache QoS
Funzione sperimentale che impedisce ai core della CPU che non minano di accedere alla cache L3, riducendo le interferenze con il mining.
