We present DIO, a generic tool for observing inefficient and erroneous I/O interactions between applications and in-kernel storage systems that lead to performance, dependability, and correctness issues. DIO facilitates the analysis and enables near real-time visualization of complex I/O patterns for data-intensive applications generating millions of storage requests. This is achieved by non-intrusively intercepting system calls, enriching collected data with relevant context, and providing timely analysis and visualization for traced events. We demonstrate its usefulness by analyzing two production-level applications. Results show that DIO enables diagnosing resource contention in multi-threaded I/O that leads to high tail latency and erroneous file accesses that cause data loss.
@article{arxiv.2304.08569,
title = {Diagnosing applications' I/O behavior through system call observability},
author = {Tânia Esteves and Ricardo Macedo and Rui Oliveira and João Paulo},
journal= {arXiv preprint arXiv:2304.08569},
year = {2023}
}