iter9: 64 MiB chunks on top of iter8 (Phase 2.5 disabled)
iter8 (Phase 2.5 disabled, 32 MiB chunks) hit 28.7 MB/s mean — 1.3 MB/s below R2 floor. Without Phase 2.5, WAIT_AFTER blocks the mux thread directly once per chunk. Halving the WAIT_AFTER frequency (32 → 64 MiB chunks) should raise the mean without changing the underlying architecture.
This commit is contained in:
@@ -73,9 +73,14 @@ use std::path::Path;
|
|||||||
use super::writeback::WritebackPipeline;
|
use super::writeback::WritebackPipeline;
|
||||||
|
|
||||||
/// Granularity at which the Linux writeback pipeline issues
|
/// Granularity at which the Linux writeback pipeline issues
|
||||||
/// `sync_file_range` / `posix_fadvise(DONTNEED)` pairs. 32 MiB
|
/// `sync_file_range` / `posix_fadvise(DONTNEED)` pairs.
|
||||||
/// remains the best-tested value.
|
///
|
||||||
const WRITEBACK_CHUNK_BYTES: u64 = 32 * 1024 * 1024;
|
/// iter9 (2026-05-17): 32 → 64 MiB on top of iter8 (Phase 2.5
|
||||||
|
/// disabled). Without Phase 2.5's writer thread, WAIT_AFTER blocks
|
||||||
|
/// the mux thread directly. Bigger chunks = fewer WAIT_AFTER calls
|
||||||
|
/// = less mux-thread blocking. iter8 mean was 28.7 with 32 MiB; aim
|
||||||
|
/// to clear the 30 floor by halving WAIT_AFTER frequency.
|
||||||
|
const WRITEBACK_CHUNK_BYTES: u64 = 64 * 1024 * 1024;
|
||||||
|
|
||||||
pub(crate) struct WritebackFile {
|
pub(crate) struct WritebackFile {
|
||||||
file: File,
|
file: File,
|
||||||
|
|||||||
Reference in New Issue
Block a user