XMRig — Guide complet
Réseau
| Option courte | Option longue | Description | Version |
|---|---|---|---|
| -o | --url=URL | URL du serveur de minage | Toutes |
| -a | --algo=ALGO | algorithme de minage | Toutes |
| --coin=COIN | indiquer la cryptomonnaie au lieu de l'algorithme | 3.2.0+ | |
| -u | --user=USERNAME | nom d'utilisateur pour le serveur de minage | Toutes |
| -p | --pass=PASSWORD | mot de passe pour le serveur de minage | Toutes |
| -O | --userpass=U:P | paire nom d'utilisateur:mot de passe pour le serveur de minage | Toutes |
| -x | --proxy=HOST:PORT | se connecter via un proxy SOCKS5 | 5.7.0+ |
| -k | --keepalive | envoyer des paquets keepalive pour éviter les timeouts (nécessite le support du pool) | Toutes |
| --nicehash | activer le support de NiceHash | Toutes | |
| --rig-id=ID | identifiant du rig pour les statistiques côté pool (nécessite le support du pool) | 2.6.1+ | |
| --tls | activer le support SSL/TLS (nécessite le support du pool) | 2.8.0+ | |
| --tls-fingerprint=HEX | empreinte du certificat TLS du pool pour un épinglage strict du certificat | 2.8.0+ | |
| --dns-ipv6 | privilégier les enregistrements IPv6 dans les réponses DNS | 6.11.0+ | |
| --dns-ttl=N | TTL du cache DNS interne en secondes N (par défaut : 30) | 6.11.0+ | |
| --daemon | utiliser le RPC du daemon au lieu d'un pool pour le minage en solo | 3.0.0+ | |
| --daemon-poll-interval=N | intervalle d'interrogation du daemon en millisecondes (par défaut : 1000) | 3.0.0+ | |
| --self-select=URL | sélectionner soi-même les modèles de blocs depuis l'URL | 4.4.0+ | |
| --submit-to-origin | envoyer aussi la solution à l'URL de self-select | 6.9.0+ | |
| -r | --retries=N | nombre de tentatives avant de basculer sur le serveur de secours (par défaut : 5) | Toutes |
| -R | --retry-pause=N | pause entre les tentatives (par défaut : 5) | Toutes |
| --user-agent | définir une chaîne user-agent personnalisée pour le pool | 2.3.0+ | |
| --donate-level=N | niveau de donation, 1 % par défaut (1 minute toutes les 100 minutes) | Toutes | |
| --donate-over-proxy=N | contrôler la donation via la fonction xmrig-proxy | 3.0.0+ |
Backend CPU
| Option courte | Option longue | Description | Version |
|---|---|---|---|
| --no-cpu | désactiver le backend de minage CPU | 3.0.0+ | |
| -t | --threads=N | nombre de threads CPU. Certaines optimisations nécessitent une affinité CPU correcte. | Toutes |
| --cpu-affinity=N | définir l'affinité du processus avec le(s) cœur(s) CPU, masque 0x3 pour les cœurs 0 et 1 | Toutes | |
| -v | --av=N | variante de l'algorithme, 0 pour la sélection automatique | Toutes |
| --cpu-priority=N | définir la priorité du processus (0 inactif, 2 normal à 5 la plus élevée) | 2.3.0+ | |
| --cpu-max-threads-hint=N | nombre maximal de threads CPU (en pourcentage) suggéré pour la configuration automatique | 4.2.0+ | |
| --cpu-memory-pool=N | nombre de pages de 2 MB pour le pool de mémoire persistant, -1 (auto), 0 (désactivé) | 4.3.0+ | |
| --cpu-no-yield | privilégier le hashrate maximal plutôt que la réactivité/stabilité du système | 5.1.1+ | |
| --no-huge-pages | désactiver le support des huge pages | 2.3.0+ | |
| --hugepage-size=N | taille personnalisée des huge pages en kB (Linux uniquement) | 2.8.1+ | |
| --huge-pages-jit | activer le support des huge pages pour le code JIT de RandomX | Toutes | |
| --asm=ASM | optimisations ASM, valeurs possibles : auto, none, intel, ryzen, bulldozer | 2.8.0+ | |
| --argon2-impl=IMPL | implémentation d'argon2 : x86_64, SSE2, SSSE3, XOP, AVX2, AVX-512F | 6.3.1+ | |
| --randomx-init=N | nombre de threads pour initialiser le dataset RandomX | 3.0.0+ | |
| --randomx-no-numa | désactiver le support NUMA pour RandomX | 3.0.0+ | |
| --randomx-mode=MODE | mode RandomX : auto, fast, light | 5.1.0+ | |
| --randomx-1gb-pages | utiliser des huge pages de 1GB pour le dataset RandomX (Linux uniquement) | 5.2.0+ | |
| --randomx-wrmsr=N | écrire des valeurs personnalisées dans les registres MSR ou désactiver le mod MSR (-1) | 5.2.0+ | |
| --randomx-no-rdmsr | ne pas restaurer les valeurs MSR initiales à la fermeture | 5.5.0+ | |
| --randomx-cache-qos | activer le Cache QoS | 6.3.1+ |
Backend OpenCL
| Option courte | Option longue | Description | Version |
|---|---|---|---|
| --opencl | activer le backend de minage OpenCL | 5.0.0+ | |
| --opencl-devices=N | liste des périphériques OpenCL à utiliser, séparés par des virgules | 5.0.0+ | |
| --opencl-platform=N | index ou nom de la plateforme OpenCL | 5.0.0+ | |
| --opencl-loader=PATH | chemin vers OpenCL-ICD-Loader (OpenCL.dll ou libOpenCL.so) | 5.0.0+ | |
| --opencl-no-cache | désactiver le cache OpenCL | 5.0.0+ | |
| --print-platforms | afficher les plateformes OpenCL disponibles et quitter | 5.0.0+ |
Backend CUDA
| Option courte | Option longue | Description | Version |
|---|---|---|---|
| --cuda | activer le backend de minage CUDA | 5.0.0+ | |
| --cuda-loader=PATH | chemin vers le plugin CUDA (xmrig-cuda.dll ou libxmrig-cuda.so) | 5.0.0+ | |
| --cuda-devices=N | liste des périphériques CUDA à utiliser, séparés par des virgules | 5.0.0+ | |
| --cuda-bfactor-hint=N | valeur bfactor suggérée pour la configuration automatique (0-12) | 5.0.1+ | |
| --cuda-bsleep-hint | valeur bsleep suggérée pour la configuration automatique | 5.0.1+ | |
| --no-nvml | désactiver le support de NVML (NVIDIA Management Library) | 5.0.0+ |
API
| Option courte | Option longue | Description | Version |
|---|---|---|---|
| --api-worker-id=ID | worker-id personnalisé pour l'API | 2.4.0+ | |
| --api-id=ID | ID d'instance personnalisé pour l'API | 2.4.0+ | |
| --http-host=HOST | hôte d'écoute de l'API HTTP (par défaut : 127.0.0.1) | 5.0.0+ | |
| --http-port=N | port d'écoute de l'API HTTP | 5.0.0+ | |
| --http-access-token=T | jeton d'accès à l'API HTTP | 5.0.0+ | |
| --http-no-restricted | activer l'accès distant complet à l'API HTTP (uniquement si un jeton d'accès est défini) | 5.0.0+ |
Journalisation
| Option courte | Option longue | Description | Version |
|---|---|---|---|
| -S | --syslog | utiliser le journal système pour les messages | Toutes |
| -l | --log-file=FILE | enregistrer toute la sortie dans un fichier | Toutes |
| --print-time=N | afficher le rapport de hashrate toutes les N secondes | Toutes | |
| --health-print-time=N | afficher le rapport d'état du matériel toutes les N secondes | 5.0.0+ | |
| --no-color | désactiver la sortie en couleur | Toutes | |
| --verbose | sortie détaillée | 5.4.0+ |
Divers
| Option courte | Option longue | Description | Version |
|---|---|---|---|
| -c | --config=FILE | charger un fichier de configuration au format JSON | Toutes |
| -B | --background | lancer le mineur en arrière-plan | Toutes |
| -V | --version | afficher la version et quitter | Toutes |
| -h | --help | afficher cette aide et quitter | Toutes |
| --dry-run | tester la configuration et quitter | Toutes | |
| --export-topology | exporter la topologie hwloc dans un fichier XML et quitter | 3.0.0+ | |
| --title | définir un titre personnalisé pour la fenêtre de la console | 6.0.1+ | |
| --no-title | ne pas modifier le titre de la fenêtre de la console | 6.0.1+ | |
| --pause-on-battery | mettre le minage en pause sur batterie | 6.3.1+ | |
| --pause-on-active=N | mettre le minage en pause quand l'utilisateur est actif (reprise N secondes après la dernière activité) | 6.9.0+ | |
| --stress | lancer un stress test continu pour vérifier la stabilité du système | 6.4.0+ | |
| --bench=N | lancer un benchmark, N peut aller de 1M à 10M | 6.4.0+ | |
| --submit | effectuer un benchmark en ligne et envoyer le résultat pour le partager | 6.5.0+ | |
| --verify=ID | vérifier un benchmark envoyé par son ID | 6.5.0+ | |
| --seed=SEED | seed RandomX personnalisée pour le benchmark | 6.5.0+ | |
| --hash=HASH | comparer le résultat du benchmark avec le hash indiqué | 6.5.0+ | |
| --no-dmi | désactiver la lecture DMI/SMBIOS | 6.8.0+ |
Besoins en mémoire
2080 MB par nœud NUMA pour le dataset ; 1 nœud NUMA correspond généralement à 1 socket CPU, le mineur affiche le nombre de nœuds au démarrage.
256 MB pour le cache sur le premier nœud NUMA.
256 KB de cache L2 et 2 MB de cache L3 par thread de minage.
Les besoins en cache CPU sont la principale raison pour laquelle le mineur n'utilise pas tous les threads sur la plupart des CPU (question très fréquente). Sous Windows, 4GB de mémoire peuvent ne pas suffire pour le système et le mineur.
Il existe plusieurs moyens d'augmenter ou de réduire les besoins en mémoire :
Les huge pages de 1GB sous Linux portent les besoins en mémoire à 3GB (3 pages) par nœud NUMA et augmentent le hashrate de 1 à 3 %.
Désactiver le support NUMA avec "numa": false dans l'objet "randomx" : le mineur n'utilisera qu'un seul dataset, mais le hashrate baissera nettement ; si vous n'avez qu'un seul nœud NUMA, cette option n'a aucun effet.
Le mode light de RandomX réduit les besoins en mémoire à 256 MB, mais il est très lent ; il s'active avec "mode": "light", dans l'objet "randomx".
Plusieurs canaux mémoire peuvent être nécessaires :
La mémoire DDR3 est limitée à environ 1500-2000 H/s par canal (selon la fréquence et les timings)
La mémoire DDR4 est limitée à environ 4000-6000 H/s par canal (selon la fréquence et les timings)
Huge Pages
Les Huge Pages peuvent augmenter les performances de RandomX jusqu'à 50 % ; les huge pages de 1GB (Linux uniquement) ajoutent encore 1 à 3 % de hashrate par rapport aux huge pages classiques.
Hardware prefetchers MSR mod
Vous devez désactiver les hardware prefetchers pour obtenir des performances optimales avec RandomX.
Cache QoS
Fonction expérimentale qui interdit l'accès au cache L3 à tous les cœurs CPU qui ne minent pas, ce qui réduit les interférences avec le minage.
