mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-09 10:43:19 -05:00
docs: add ramdisk guide for running tests on OSX
This commit is contained in:
parent
a245429d68
commit
2f84ad7b9e
1 changed files with 32 additions and 9 deletions
|
@ -109,34 +109,57 @@ how many jobs to run, append `--jobs=n`
|
||||||
The individual tests and the test_runner harness have many command-line
|
The individual tests and the test_runner harness have many command-line
|
||||||
options. Run `test/functional/test_runner.py -h` to see them all.
|
options. Run `test/functional/test_runner.py -h` to see them all.
|
||||||
|
|
||||||
#### Speed up test runs with a ramdisk
|
#### Speed up test runs with a RAM disk
|
||||||
|
|
||||||
If you have available RAM on your system you can create a ramdisk to use as the `cache` and `tmp` directories for the functional tests in order to speed them up.
|
If you have available RAM on your system you can create a RAM disk to use as the `cache` and `tmp` directories for the functional tests in order to speed them up.
|
||||||
Speed-up amount varies on each system (and according to your ram speed and other variables), but a 2-3x speed-up is not uncommon.
|
Speed-up amount varies on each system (and according to your RAM speed and other variables), but a 2-3x speed-up is not uncommon.
|
||||||
|
|
||||||
To create a 4GB ramdisk on Linux at `/mnt/tmp/`:
|
**Linux**
|
||||||
|
|
||||||
|
To create a 4 GiB RAM disk at `/mnt/tmp/`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo mkdir -p /mnt/tmp
|
sudo mkdir -p /mnt/tmp
|
||||||
sudo mount -t tmpfs -o size=4g tmpfs /mnt/tmp/
|
sudo mount -t tmpfs -o size=4g tmpfs /mnt/tmp/
|
||||||
```
|
```
|
||||||
|
|
||||||
Configure the size of the ramdisk using the `size=` option.
|
Configure the size of the RAM disk using the `size=` option.
|
||||||
The size of the ramdisk needed is relative to the number of concurrent jobs the test suite runs.
|
The size of the RAM disk needed is relative to the number of concurrent jobs the test suite runs.
|
||||||
For example running the test suite with `--jobs=100` might need a 4GB ramdisk, but running with `--jobs=32` will only need a 2.5GB ramdisk.
|
For example running the test suite with `--jobs=100` might need a 4 GiB RAM disk, but running with `--jobs=32` will only need a 2.5 GiB RAM disk.
|
||||||
|
|
||||||
To use, run the test suite specifying the ramdisk as the `cachedir` and `tmpdir`:
|
To use, run the test suite specifying the RAM disk as the `cachedir` and `tmpdir`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
test/functional/test_runner.py --cachedir=/mnt/tmp/cache --tmpdir=/mnt/tmp
|
test/functional/test_runner.py --cachedir=/mnt/tmp/cache --tmpdir=/mnt/tmp
|
||||||
```
|
```
|
||||||
|
|
||||||
Once finished with the tests and the disk, and to free the ram, simply unmount the disk:
|
Once finished with the tests and the disk, and to free the RAM, simply unmount the disk:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo umount /mnt/tmp
|
sudo umount /mnt/tmp
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**macOS**
|
||||||
|
|
||||||
|
To create a 4 GiB RAM disk named "ramdisk" at `/Volumes/ramdisk/`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
diskutil erasevolume HFS+ ramdisk $(hdiutil attach -nomount ram://8388608)
|
||||||
|
```
|
||||||
|
|
||||||
|
Configure the RAM disk size, expressed as the number of blocks, at the end of the command
|
||||||
|
(`4096 MiB * 2048 blocks/MiB = 8388608 blocks` for 4 GiB). To run the tests using the RAM disk:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
test/functional/test_runner.py --cachedir=/Volumes/ramdisk/cache --tmpdir=/Volumes/ramdisk/tmp
|
||||||
|
```
|
||||||
|
|
||||||
|
To unmount:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
umount /Volumes/ramdisk
|
||||||
|
```
|
||||||
|
|
||||||
#### Troubleshooting and debugging test failures
|
#### Troubleshooting and debugging test failures
|
||||||
|
|
||||||
##### Resource contention
|
##### Resource contention
|
||||||
|
|
Loading…
Add table
Reference in a new issue