Network
Short option Long option Description Version
-o --url=URL URL of mining server All
-a --algo=ALGO mining algorithm All
--coin=COIN specify coin instead of algorithm 3.2.0+
-u --user=USERNAME username for mining server All
-p --pass=PASSWORD password for mining server All
-O --userpass=U:P username:password pair for mining server All
-x --proxy=HOST:PORT connect through a SOCKS5 proxy 5.7.0+
-k --keepalive send keepalive packet for prevent timeout (needs pool support) All
--nicehash enable nicehash support All
--rig-id=ID rig identifier for pool-side statistics (needs pool support) 2.6.1+
--tls enable SSL/TLS support (needs pool support) 2.8.0+
--tls-fingerprint=HEX pool TLS certificate fingerprint for strict certificate pinning 2.8.0+
--dns-ipv6 prefer IPv6 records from DNS responses 6.11.0+
--dns-ttl=N N seconds (default: 30) TTL for internal DNS cache 6.11.0+
--daemon use daemon RPC instead of pool for solo mining 3.0.0+
--daemon-poll-interval=N daemon poll interval in milliseconds (default: 1000) 3.0.0+
--self-select=URL self-select block templates from URL 4.4.0+
--submit-to-origin also submit solution back to self-select URL 6.9.0+
-r --retries=N number of times to retry before switch to backup server (default: 5) All
-R --retry-pause=N time to pause between retries (default: 5) All
--user-agent set custom user-agent string for pool 2.3.0+
--donate-level=N donate level, default 1% (1 minute in 100 minutes) All
--donate-over-proxy=N control donate over xmrig-proxy feature 3.0.0+
CPU backend
Short option Long option Description Version
--no-cpu disable CPU mining backend 3.0.0+
-t --threads=N number of CPU threads. Proper CPU affinity required for some optimizations. All
--cpu-affinity=N set process affinity to CPU core(s), mask 0x3 for cores 0 and 1 All
-v --av=N algorithm variation, 0 auto select All
--cpu-priority=N set process priority (0 idle, 2 normal to 5 highest) 2.3.0+
--cpu-max-threads-hint=N maximum CPU threads count (in percentage) hint for autoconfig 4.2.0+
--cpu-memory-pool=N number of 2 MB pages for persistent memory pool, -1 (auto), 0 (disable) 4.3.0+
--cpu-no-yield prefer maximum hashrate rather than system response/stability 5.1.1+
--no-huge-pages disable huge pages support 2.3.0+
--hugepage-size=N custom hugepage size in kB (Linux only) 2.8.1+
--huge-pages-jit enable huge pages support for RandomX JIT code All
--asm=ASM ASM optimizations, possible values: auto, none, intel, ryzen, bulldozer 2.8.0+
--argon2-impl=IMPL argon2 implementation: x86_64, SSE2, SSSE3, XOP, AVX2, AVX-512F 6.3.1+
--randomx-init=N thread count to initialize RandomX dataset 3.0.0+
--randomx-no-numa disable NUMA support for RandomX 3.0.0+
--randomx-mode=MODE RandomX mode: auto, fast, light 5.1.0+
--randomx-1gb-pages use 1GB hugepages for RandomX dataset (Linux only) 5.2.0+
--randomx-wrmsr=N write custom value(s) to MSR registers or disable MSR mod (-1) 5.2.0+
--randomx-no-rdmsr disable reverting initial MSR values on exit 5.5.0+
--randomx-cache-qos enable Cache QoS 6.3.1+
OpenCL backend
Short option Long option Description Version
--opencl enable OpenCL mining backend 5.0.0+
--opencl-devices=N comma separated list of OpenCL devices to use 5.0.0+
--opencl-platform=N OpenCL platform index or name 5.0.0+
--opencl-loader=PATH path to OpenCL-ICD-Loader (OpenCL.dll or libOpenCL.so) 5.0.0+
--opencl-no-cache disable OpenCL cache 5.0.0+
--print-platforms print available OpenCL platforms and exit 5.0.0+
CUDA backend
Short option Long option Description Version
--cuda enable CUDA mining backend 5.0.0+
--cuda-loader=PATH path to CUDA plugin (xmrig-cuda.dll or libxmrig-cuda.so) 5.0.0+
--cuda-devices=N comma separated list of CUDA devices to use 5.0.0+
--cuda-bfactor-hint=N bfactor hint for autoconfig (0-12) 5.0.1+
--cuda-bsleep-hint bsleep hint for autoconfig 5.0.1+
--no-nvml disable NVML (NVIDIA Management Library) support 5.0.0+
API
Short option Long option Description Version
--api-worker-id=ID custom worker-id for API 2.4.0+
--api-id=ID custom instance ID for API 2.4.0+
--http-host=HOST bind host for HTTP API (default: 127.0.0.1) 5.0.0+
--http-port=N bind port for HTTP API 5.0.0+
--http-access-token=T access token for HTTP API 5.0.0+
--http-no-restricted enable full remote access to HTTP API (only if access token set) 5.0.0+
Logging
Short option Long option Description Version
-S --syslog use system log for output messages All
-l --log-file=FILE log all output to a file All
--print-time=N print hashrate report every N seconds All
--health-print-time=N print health report every N seconds 5.0.0+
--no-color disable colored output All
--verbose verbose output 5.4.0+
Misc
Short option Long option Description Version
-c --config=FILE load a JSON-format configuration file All
-B --background run the miner in the background All
-V --version output version information and exit All
-h --help display this help and exit All
--dry-run test configuration and exit All
--export-topology export hwloc topology to a XML file and exit 3.0.0+
--title set custom console window title 6.0.1+
--no-title disable setting console window title 6.0.1+
--pause-on-battery pause mine on battery power 6.3.1+
--pause-on-active=N pause mine when the user is active (resume after N seconds of last activity) 6.9.0+
--stress run continuous stress test to check system stability 6.4.0+
--bench=N run benchmark, N can be between 1M and 10M 6.4.0+
--submit perform an online benchmark and submit result for sharing 6.5.0+
--verify=ID verify submitted benchmark by ID 6.5.0+
--seed=SEED custom RandomX seed for benchmark 6.5.0+
--hash=HASH compare benchmark result with specified hash 6.5.0+
--no-dmi disable DMI/SMBIOS reader 6.8.0+
Memory size requirements
2080 MB per NUMA node for dataset, 1 NUMA node usually equal to 1 CPU socket, the miner show number of nodes on startup.
256 MB for cache on first NUMA node.
256 KB of L2 cache and 2 MB of L3 cache per 1 mining thread.
CPU cache requirements is the main reason why the miner not use all threads on most CPUs (very popular question). On Windows 4GB memory may not enough system and miner.
There are several ways to increase or reduce memory requirements:
1GB huge pages on Linux, increases memory requirements to 3GB (3 pages) per NUMA node and increases the hashrate by 1-3%.
Disable NUMA support by "numa": false in "randomx" object, miner will use only 1 dataset, but it reduce hashrate significantly, if you have only 1 NUMA node this option has no effect.
RandomX light mode, reduces memory requirements to 256 MB but this mode very slow, can be enabled by "mode": "light", in "randomx" object.
Multiple memory channels may be required:
DDR3 memory is limited to about 1500-2000 H/s per channel (depending on frequency and timings)
DDR4 memory is limited to about 4000-6000 H/s per channel (depending on frequency and timings)
Huge Pages
Huge Pages can increase RandomX performance up to 50%, 1GB huge pages (Linux only) increase hashrate by an additional 1-3% on top of regular huge pages.
Hardware prefetchers MSR mod
You must disable hardware prefetchers to get the optimal RandomX performance.
Cache QoS
Experimental feature to disallow all CPU cores which are not mining to not have access to L3 cache which reduce interference with mining.