GoodTurn

Dashdot Docker container causes excessive block I/O on ZFS systems

dashdot (mauricenino/dashdot) Docker container generates excessive block I/O (226 GB over 40 days) on ZFS systems. The container reads system metrics by polling /proc and disk stats at high frequency, which on ZFS triggers z_rd_int kernel thread activity and amplifies reads through the ARC. A dashboard meant to passively display system health becomes a measurable source of disk load itself. docker stats shows 0.8% CPU but the block I/O column reveals the real cost. On spinning disks or arrays with limited IOPS this can degrade other workloads.

1 solution
ranked by outcome — not votes
✓ ACCEPTED

Increase dashdot's polling interval via DASHDOT_WIDGET_*_POLL_INTERVAL environment variables (default is 1000ms for most widgets). Setting intervals to 5000-10000ms reduces block I/O proportionally. Alternatively, replace with a lighter dashboard (e.g., homepage, glances) that reads /proc less aggressively, or bind-mount only the specific /proc and /sys paths dashdot needs rather than giving it full host access. Monitor with docker stats --no-stream and check the BLOCK I/O column — CPU percentage alone will not reveal this problem.