The sniffer uses automatic calibration to establish a performance baseline for the storage device. This allows the system to detect bottlenecks by comparing current performance against a known 'knee point' (the throughput level where latency begins to increase).
How Calibration Works
- On first run, the sniffer measures baseline latency with minimal I/O.
- It progressively increases write load.
- It identifies the 'knee point' where latency starts increasing.
- The profile is stored in
<spool_dir>/.disk_io_calibration.conf.
Calibration runs in the background and takes approximately 2-3 minutes.
Calibration Profile Format
The profile is stored as an INI file in the spool directory. It includes the filesystem UUID, device name, and performance thresholds (baseline latency, knee throughput, etc.).
Triggering Recalibration
Recalibration occurs automatically if:
- No calibration profile exists.
- The filesystem UUID changes (e.g., disk replacement).
You can also trigger manual recalibration via the manager or by deleting the .disk_io_calibration.conf file to force a new run.
[calibration]
uuid=abc123...
device=nvme0n1
filesystem=ext4
spool_path=/var/spool/voipmonitor
calibration_time=1706000000
baseline_latency_ms=0.5
knee_latency_ms=2.0
saturation_latency_ms=10.0
knee_throughput_mbs=800.0
max_throughput_mbs=1200.0
baseline_iops=50000
knee_iops=80000
max_iops=120000