XMRig 6.26 实战:从 5 分钟跑通到生产调优的 CPU/GPU 统一挖矿手册
【免费下载链接】xmrigRandomX, KawPow, CryptoNight and GhostRider unified CPU/GPU miner and RandomX benchmark项目地址: https://gitcode.com/GitHub_Trending/xm/xmrig
想在一台闲置服务器上挖 RandomX、KawPow、CryptoNight 或 GhostRider,或者只想跑一次 CPU 基准测试确认硬件状态,XMRig 是合适的工具:单进程同时驱动 CPU、OpenCL 与 CUDA 三种后端,内置 RandomX benchmark,挖矿与跑分用同一套配置。读完这篇,你会有一台能连池稳定挖矿的机器,以及几个真正用得上的调优开关。
先跑起来:最小化部署
三步,五分钟。
第一步:拿到程序。直接下载官方二进制(Windows、Linux、macOS、FreeBSD 都有),或从源码构建:
git clone https://gitcode.com/GitHub_Trending/xm/xmrig cd xmrig && cmake -B build -DWITH_OPENCL=OFF -DWITH_CUDA=OFF && cmake --build build --config Release没有 GPU 就在 CMake 阶段裁成 CPU-only 构建,编译更快、二进制更小,全部开关见顶层 CMakeLists.txt。判断标准:build/目录产出可执行的xmrig文件。
第二步:跑一条验证命令。不需要钱包、不需要矿池,离线即可:
./build/xmrig --bench=1M执行 100 万次 RandomX 哈希并打印耗时与算力,样本想更大就换--bench=10M。
第三步:看输出,盯三处。
- 末尾出现
speed 10s/60s/15m ... H/s一行,算力与机器规格相符; - dataset 与各线程的
Huge pages 100%全部就位; - checksum 为绿色——绿色即正确,红色表示计算过程中出现过硬件错误,机制见 doc/BENCHMARK.md。
三条都满足,硬件过基础检查,可以接池了。
🔌 后端选型对比:CPU、OpenCL 与 CUDA
三个后端在同一进程内共存,构建入口按 CPU → OpenCL → CUDA 的顺序依次引入:
| 后端 | 适用硬件 | 默认开关 | 核心代码位置 |
|---|---|---|---|
| CPU | x86/x64、ARMv7/ARMv8、RISC-V | 恒开,默认启用 | src/backend/cpu |
| OpenCL | AMD GPU | 运行时opencl.enabled默认 false,加--opencl打开 | src/backend/opencl |
| CUDA | NVIDIA GPU | cuda.enabled默认 false,且必须外挂 xmrig-cuda 插件 | src/backend/cuda |
几条直白判断:
- 只有 CPU?另外两个不用想。CPU 后端覆盖全部算法家族,自动线程配置默认就是最优解。
- AMD 卡、矿池跑 KawPow 或 CryptoNight?走 OpenCL,cn、kawpow、rx 三套 OpenCL 内核都是内置的。
- NVIDIA 卡要额外一步:仓库里的 CUDA 部分只实现加载器与 Runner 接口,内核由外部插件提供,
--cuda-loader指向插件后才能启用。 - 想裁精简专用二进制?用 CMake 的
WITH_KAWPOW、WITH_GHOSTRIDER等开关裁掉不用的算法家族。
⚙️ 配置三件套:同一个目标的三种姿势
三种姿势写进的是同一套内部配置模型,互不冲突。README 的立场很明确:JSON 优先,因为命令行覆盖不了全部特性(比如不同算法各自的挖矿 profile)。
JSON 配置文件:适合长期维护
以仓库自带的 src/config.json 为底,只改要改的字段:
{ "cpu": { "enabled": true, "huge-pages": true }, "opencl": { "enabled": true, "devices": "0" }, // 启用 AMD GPU 0 号设备 "randomx": { "mode": "fast" }, // fast 费内存,light 省内存 "donate-level": 1, // 开发者捐赠比例,默认 1% "http": { "enabled": true, "port": 4055 }, // 打开 HTTP API "pools": [ { "url": "pool.example.com:3333", // 换成矿池 host:port "user": "YOUR_WALLET_ADDRESS", // 换成你的钱包地址 "pass": "x", "tls": true, // 矿池 SSL 端口置 true "keepalive": true // 心跳防超时 } ] }改完用--dry-run快检,具体见后文「上线前三件事」。几个最常改字段的取值逻辑:
url/user/pass:矿池三件套。algo、coin留空由矿池派任务,也可以自己指定rx/0、gr。cpu.huge-pages:true用默认 2 MB 大页;写数字就是自定义页大小(单位 kB,超过 1 GB 页阈值会回退默认值),解析逻辑在 CpuConfig.cpp 的setHugePages()。randomx.mode:auto/fast/light,内存紧张就 light。http.port:打开远程查询与调参接口,运维一节细说。
命令行:适合快速启动
./xmrig -o pool.example.com:3333 -u YOUR_WALLET_ADDRESS -p x --tls -k --cpu-max-threads-hint=80-o/-u/-p是矿池三件套,--tls走 SSL 端口,-k开心跳,--cpu-max-threads-hint限定自动生成线程数的百分比(0–100)。判断标准:日志出现ABOUT/POOL #1区块,几秒后打出new job。完整参数清单在 usage.h,用到再查。
Wizard:适合从 0 到 1
官方 Wizard 帮你生成初始 JSON,第一次配置用它最省事。生成之后它就是一份普通配置文件,后续调优照旧回到 JSON。
什么时候用哪种
| 姿势 | 适用场景 | 局限 |
|---|---|---|
| JSON | 多矿池、多算法 profile、长期调优 | 需要熟悉字段名 |
| 命令行 | 快速启动、临时覆盖个别参数 | 覆盖不了全部特性 |
| Wizard | 生成初始配置,从 0 到 1 | 产物仍需落到 JSON 里维护 |
🧪 按算法逐项调优
四个算法家族都有内置自动配置,绝大多数情况下默认就够,只在出现明确触发条件时才动手。
RandomX(rx/0):盯内存与 MSR
- 默认够用吗?够用。
huge-pages、rdmsr、wrmsr默认全开,mode: auto按 CPU 自选。 - 何时介入:内存充裕的 Linux 机器,预分配 1 GB 大页(仓库自带 scripts/enable_1gb_pages.sh)后把
"1gb-pages"置 true;怀疑 MSR 没写进去,先跑一次 scripts/randomx_boost.sh,它会按 Zen 代际和 Intel 分别写入推荐值;内存紧张就降级mode: "light"。 - 看哪个指标:日志里 dataset 与 scratchpad 均显示
Huge pages 100%,且有msr register values ... set successfully。缺任何一条,算力都会明显打折。
CryptoNight 系(cn/r、cn/fast、cn/upx2 等):盯汇编与 AES
- 默认够用吗?够用。
asm: auto加hw-aes自动检测,CPU 的 AES 指令集开箱即用。 - 何时介入:启动信息里 CPU 一行没出现
AES,说明回退到了软件实现,用--asm=intel或--asm=ryzen强制指定;同时挖多个变体、想微调线程配比,用"cn/0"、"cn-lite/0"这类变体开关。 - 看哪个指标:
x64 AES出现在启动信息里,new job的 diff 与矿池一致,speed行算力稳定。
KawPow:盯缓存与 GPU 路径
- 默认够用吗?CPU 侧够用,每线程独立缓存,线程数交给自动配置。
- 何时介入:GPU 挖矿需先启用 OpenCL 并指定设备;怀疑内核编译缓存异常导致反复重编,用
--opencl-no-cache跑一次对比排除。 - 看哪个指标:启动无 OCL 报错,
speed行算力平稳无锯齿。
GhostRider(gr):默认值优先,别乱碰
- 默认够用吗?够用,而且建议别动。v6.16.0 起官方自动配置在大多数 CPU 上表现良好。
- 何时介入:真要调线程占比,用
--cpu-max-threads-hint=N(0–100)或改配置文件,不要用-t/--threads——GhostRider 文档 明确写了它会关闭内置高级自动配置。 - 看哪个指标:
speed行的 h/s。注意 CPU 占用可能低于 100%(Ryzen 3000/5000 上部分变体少线程反而更快),这是有意为之,不是 bug。
📊 上线前三件事:校验、基准与压测
每件事一条命令、一条判据。
1. 配置校验
./xmrig -c config.json --dry-run--dry-run只测试配置然后退出。判据:无错误输出且立刻退出;字段写错会直接报给你。
2. 基准跑分
./xmrig --bench=1M --submit跑分并把结果在线提交分享(跑分本身离线可行,提交需要联网)。判据:checksum 绿色(硬件稳定)加Huge pages 100%;之后可用--verify=ID复核已提交的结果。
3. 短时压测
./xmrig --stress贴近真实 RandomX 挖矿的连续压力测试(需联网,无限期运行)。判据:连续 15–30 分钟无红色错误,算力波动在几个百分点以内,温度不爬升。
🏭 上线之后的运维
跑起来之后你还会碰到的几件事:
- 配置热更新:
"watch": true(默认开启),改完 config 文件保存即自动重载,不用重启,实现在 src/base/io/Watcher.cpp;"autosave": true会把运行中的修改写回文件,所见即所得。 - HTTP API:
http.port加access-token即可用;restricted: true时远程受限、本地功能完整,适合批量管理或接监控面板。 - 日志:
-l FILE落盘,--verbose取 0–4 控制详略,--syslog走 syslog 服务。 - 健康巡检:
health-print-time(默认 60 秒)定期打印硬件健康报告,GPU 温度都在里面。 - 重连与重试:
retries: 5、retry-pause: 5,掉线自动重连,参数名就是语义。 - 暂停策略:
pause-on-battery、pause-on-active=N适合桌面机;title选项把算力写进窗口标题,远程瞟一眼就知道状态。
捐赠、生态与支持
- 默认开发者捐赠 1%(每 100 分钟让出 1 分钟),用
--donate-level或"donate-level"调整。 - 彻底关闭:把 donate.h 里的
kDefaultDonateLevel、kMinimumDonateLevel改成 0 重新编译。 - 选择关闭的话,官方建议用一次性 XMR 地址支持项目(地址见 README 捐赠一节)。
- 支持邮箱 support@xmrig.com;主要开发者为 xmrig 与 sech1,许可证 GPL-3.0-or-later。
延伸阅读:CHANGELOG.md、doc/API.md、doc/ALGORITHMS.md。
最后给一条可执行建议:先按本文顺序跑完--dry-run与--bench=1M,确认 checksum 绿色且Huge pages 100%再上生产;调优前先读一遍 doc/BENCHMARK.md,把内置基准测试的判据吃透,后续排查硬件问题会省很多事。
【免费下载链接】xmrigRandomX, KawPow, CryptoNight and GhostRider unified CPU/GPU miner and RandomX benchmark项目地址: https://gitcode.com/GitHub_Trending/xm/xmrig
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考