Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge bitcoin/bitcoin#30039: dbwrapper: Bump LevelDB max file size to…
… 32 MiB to avoid system slowdown from high disk cache flush rate b73d331 dbwrapper: Bump max file size to 32 MiB (Maciej S. Szmigiero) Pull request description: The default max file size for LevelDB is 2 MiB, which results in the LevelDB compaction code generating ~4 disk cache flushes per second when syncing with the Bitcoin network. These disk cache flushes are triggered by `fdatasync()` syscall issued by the LevelDB compaction code when reaching the max file size. If the database is on a HDD this flush rate brings the whole system to a crawl. It also results in very slow throughput since 2 MiB * 4 flushes per second is about 8 MiB / second max throughput, while even an old HDD can pull 100 - 200 MiB / second streaming throughput. Increase the max file size for LevelDB to 128 MiB instead so the flush rate drops to about 1 flush / 2 seconds and the system no longer gets so sluggish. The max file size value chosen also matches the `MAX_BLOCKFILE_SIZE` file size setting already used by the block storage. ACKs for top commit: l0rinc: ACK b73d331 davidgumberg: ACK bitcoin/bitcoin@b73d331 andrewtoth: ACK b73d331 TheCharlatan: ACK b73d331 willcl-ark: ACK b73d331 tdb3: ACK b73d331 laanwj: ACK b73d331 Tree-SHA512: 5d8fb9ad1ea643fb3e42a9c59f6fc90cc5cc3b82c06d9b8d59de3a5a926fabaeb78efb51b608b1e7925f49d82dfcbd5b72c552993879789f33201efe57c278f3
- Loading branch information