Skip to main content

Storage device IO

1readings
1conditions
2themes fed
Livestatus

Per-device IO posture, including a device that is busy but moving almost nothing.

Topic id: storage_device_io.

Reported every 5 minutes on clock boundaries for the window ending at t. sparklogs.window_coverage_pct is below 100 when collection covered only part of the window. Use chart buckets at least 5 minutes wide.

Fields​

Read/write activity, response times and stalled-I/O indicators for each storage device.

FieldTypeUnitMeaning
sparklogs.data.storage_device_io.devicestringThe device's stable identity, the same identity storage_devices uses.
sparklogs.data.storage_device_io.display_namestringThe device's friendly name, for display.
sparklogs.data.storage_device_io.transportstringThe bus this device is attached over.
sparklogs.data.storage_device_io.mediastringThe device's media: hdd or ssd. Omitted when not read.
sparklogs.data.storage_device_io.total_iops_avgfloatiopsAverage combined read and write operations per second over the window.
sparklogs.data.storage_device_io.total_mb_per_s_avgfloatmegabytes_per_secondThe average combined read-plus-write throughput over the window, in 1024-based MB per second.
sparklogs.data.storage_device_io.bus_permanentboolWhether this device uses a permanent bus, excluding USB.
sparklogs.data.storage_device_io.carries_writeable_volumeboolWhether this device backs at least one mounted volume that allows writes.
sparklogs.data.storage_device_io.carries_os_volumeboolWhether this device backs the volume Windows runs from. False when it does not, including when that volume's role was not established.
sparklogs.data.storage_device_io.busy_pct_avgfloatpercentThe average share of the window this device spent busy.
sparklogs.data.storage_device_io.busy_pct_p90_10sfloatpercentThe 90th percentile, across the window's 10-second samples, of busy share.
sparklogs.data.storage_device_io.busy_pct_max_10sfloatpercentThe highest 10-second busy share the window observed.
sparklogs.data.storage_device_io.read_iops_avgfloatiopsThe average read rate over the window.
sparklogs.data.storage_device_io.read_iops_max_10sfloatiopsThe highest 10-second read rate the window observed.
sparklogs.data.storage_device_io.write_iops_avgfloatiopsThe average write rate over the window.
sparklogs.data.storage_device_io.write_iops_max_10sfloatiopsThe highest 10-second write rate the window observed.
sparklogs.data.storage_device_io.read_mb_per_s_avgfloatmegabytes_per_secondThe average read throughput over the window, in 1024-based MB per second.
sparklogs.data.storage_device_io.read_mb_per_s_max_10sfloatmegabytes_per_secondThe highest 10-second read throughput the window observed, in 1024-based MB per second.
sparklogs.data.storage_device_io.write_mb_per_s_avgfloatmegabytes_per_secondThe average write throughput over the window, in 1024-based MB per second.
sparklogs.data.storage_device_io.write_mb_per_s_max_10sfloatmegabytes_per_secondThe highest 10-second write throughput the window observed, in 1024-based MB per second.
sparklogs.data.storage_device_io.read_latency_ms_avgfloatmillisecondsThe count-weighted average read latency over the window.
sparklogs.data.storage_device_io.write_latency_ms_avgfloatmillisecondsThe count-weighted average write latency over the window.
sparklogs.data.storage_device_io.latency_ms_p90_10sfloatmillisecondsThe 90th percentile, across the window's 10-second mean-latency samples, of latency.
sparklogs.data.storage_device_io.latency_ms_max_10sfloatmillisecondsThe highest 10-second mean latency the window observed.
sparklogs.data.storage_device_io.avg_read_kbfloatkilobytesThe average size of a read over the window.
sparklogs.data.storage_device_io.avg_write_kbfloatkilobytesThe average size of a write over the window.
sparklogs.data.storage_device_io.queue_depth_avgfloatThe average outstanding IO queue depth over the window.
sparklogs.data.storage_device_io.queue_depth_max_10sfloatThe highest 10-second queue depth the window observed.
sparklogs.data.storage_device_io.topology_segment_countintegercountHow many distinct topology signatures the window's samples held. More than two in one window marks topology_mixed and holds until every sample shares one topology again.
sparklogs.data.storage_device_io.topology_mixedboolWhether the topology changed too many times within one window to trust a single reduction. Absent when the topology held steady.
sparklogs.data.storage_device_io.disk_unresponsive_age_basisstringonset: witnessed start. observed: already present when first seen, making age a lower bound. unknown_ongoing: no meaningful onset time.
sparklogs.data.storage_device_io.disk_unresponsive_age_hfloathoursHow long this condition has been open, in hours.

Conditions​

A condition is a state that holds for a while. The agent opens it when the host enters it, keeps it open while it lasts, and closes it when the host comes back out, so one episode answers for the whole stretch instead of one alert per sample.

ConditionSeverityHow an episode ends
disk unresponsive (disk_unresponsive)Minor to CriticalIt closes when any one of the several recovery conditions is met.

Example​

Inventory (every 5 minutes)

1 device; "Disk 0" nvme ssd busy 12%, 0.5 ms p90.

sparklogs.data.storage_device_io.device: storage_device:eui.0025385c91b5a1e2
sparklogs.data.storage_device_io.busy_pct_avg: 12.0
sparklogs.data.storage_device_io.total_iops_avg: 1400.0
sparklogs.data.storage_device_io.total_mb_per_s_avg: 10.87

SparkLogs: CONTEXT, Info, storage_device_io: INVENTORY: 1 device; "Disk 0" nvme ssd busy 12%, 0.5 ms p90.

Selected conditions​

disk_unresponsive​

A storage device is busy but moving almost no data.

Also reported by: Storage device IO

Impact: IO to this device may be stalled, and a writeable volume on it can stop responding.

Example

started; disk "Disk 1" busy 99

sparklogs.instance: storage_device:eui.0025385c91b5a1e3
sparklogs.data.storage_device_io.device: storage_device:eui.0025385c91b5a1e3
sparklogs.data.storage_device_io.busy_pct_avg: 99.0
sparklogs.data.storage_device_io.total_iops_avg: 0.4
sparklogs.data.storage_device_io.total_mb_per_s_avg: 0.01
sparklogs.data.storage_device_io.disk_unresponsive_age_h: 0.0

SparkLogs: disk_unresponsive, Critical, storage_device_io: disk_unresponsive: NOTABLE: started; disk "Disk 1" busy 99

CaseSeverityTicket class
onsetTrace to Fatalstorage
heldTrace to Fatalstorage
recoveredTrace to Fatalstorage