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.
翻译:我们提出DIO,一种通用工具,用于观测应用与内核存储系统之间导致性能、可靠性和正确性问题的低效及错误I/O交互。DIO支持对生成数百万存储请求的数据密集型应用进行复杂I/O模式的分析,并提供近乎实时的可视化。这是通过非侵入式地拦截系统调用、用相关上下文丰富收集的数据,并为追踪事件提供及时分析与可视化来实现的。我们通过分析两个生产级应用展示了其实用性。结果表明,DIO能够诊断导致高尾延迟的多线程I/O资源争用,以及导致数据丢失的错误文件访问。