doc/testnet/node: minerd configuration section added

This commit is contained in:
skoupidi
2025-12-17 18:10:27 +02:00
parent ffd1964254
commit 596a498e8b

View File

@@ -218,8 +218,11 @@ make[1]: Leaving directory '/home/anon/darkfi/bin/minerd'
This process will now compile the mining daemon. When finished, run
`minerd` once so that it spawns its config file on your system. This
config file is used to configure `minerd`. You can define how many
threads will be used for mining. RandomX can use up to 2080 MiB per
thread so configure it to not consume all your system available memory.
threads will be used for mining. RandomX can use up to `2080 MiB` of
shared memory, so configure `minerd` to not consume all your system
available memory. Refer to [ram consumption](#ram-consumption) section
to see expected totals using various configurations, so you can
configure your `minerd` accordingly.
```shell
$ ./minerd
@@ -278,6 +281,96 @@ $ ./minerd
...
```
#### Minerd configuration
`minerd` configuration file provides several ways to optimize RAM
utilization and mining hashrate. This section will describe some of the
provided configuration flags, along with a table at the end showcasing
total daemon RAM consuption using each. By default, `minerd` is running
using `fast-mode`, where `2080 MiB` of shared memory is required for
the RandomX dataset. To enable or disable a flag, simply set its value
to `true` or `false` in the configuration file and restart `minerd`.
Read what each flag does before enabling it.
#### `light-mode`
In this mode, `minerd` will run using only `256 MiB` of shared memory,
but in will run significantly slower, with huge impact on hashrate. It
is used mainly for verification, not mining, but its available in case
system resources are ultra limited.
#### `large-pages`
`Huge Pages`, also known as `Large Pages` (on `Windows`) and
`Super Pages` (on `BSD` or `macOS`) is the process of reserving RAM
with larger than default chunk (page) size, which give the CPU/OS fewer
entries to look-up, and increases mining hashrate performance up to
50%. General recommendations is `1280` pages for RandomX. Please note
`1280` pages means `2560 MiB` of memory will be reserved for huge pages
and become not available for other usage. Before enabling the flag, we
must reserve the huge pages, otherwise `minerd` will gives us an
allocation error.
To temporary (until next reboot) reserve huge pages, execute as `root`:
```shell
# sysctl -w vm.nr_hugepages=1280
```
To verify huge pages have been reserved, execute:
```shell
$ grep Huge /proc/meminfo
...
HugePages_Total: 1280
HugePages_Free: 1280
...
```
To permantly reserve huge pages, you need to modify your boot
configuration. In this example, we will use `grub` to reserve the
pages.
> Note:
> Before proceeding, take a backup of your current `grub`
> configuration file and be extra carefull on following the
> instructions, as mistakes will result in your system not booting.
Open your current `grub` configuration file (the default path is
`/etc/default/grub`), find `GRUB_CMDLINE_LINUX_DEFAULT` option and
append `hugepagesz=2MB hugepages=1280` at the end of its parameters.
The option should look like this:
```text
GRUB_CMDLINE_LINUX_DEFAULT="{YOUR_PREVIOUS_PARAMETERS} hugepagesz=2MB hugepages=1280"
```
Save the file and execute as `root`:
```shell
# update-grub
```
Now you can reboot your system and huge pages will be reserved. If you
want to revert, just remove the huge pages parameters from your `grub`
configuration, update it and reboot.
#### RAM consumption
Here is a table showcasing `minerd` daemon total RAM consumption in MiB
using various threads count for mining and optimization flags.
| Threads | `light-mode` | `fast-mode` | `fast-mode` + `large-pages` |
|---------|--------------|-------------|-----------------------------|
| 1 | 271 | 2351 | 14.0 |
| 4 | 277 | 2357 | 14.2 |
| 8 | 285 | 2365 | 14.4 |
> Note:
> The last column shows sow low RAM consumption because the dataset is
> allocated in the already reserved system huge pages.
### Darkfid
Now that `darkfid` configuration is in place, you can run it again and