Publication | Closed Access
Enlightening the I/O path: a holistic approach for application performance
32
Citations
16
References
2017
Year
Distributed File SystemStorage PerformanceEngineeringComputer ArchitectureSoftware EngineeringParallel StorageSoftware AnalysisRequest HandlingPerformance IssueI/o PathParallel ComputingPercentile Request LatencyPerformance EngineeringData ManagementProfiling ToolComputer EngineeringRequest Handling LatencyDistributed SystemsComputer SciencePerformance Analysis ToolSoftware DesignOperating SystemsProgram AnalysisParallel ProgrammingReal-time SystemsDistributed Data StorePerformance PortabilityAsynchronous SystemsSystem Software
In data-intensive applications, such as databases and key-value stores, reducing the request handling latency is important for providing better data services. In such applications, I/O-intensive background tasks, such as checkpointing, are the major culprit in worsening the latency due to the contention in shared I/O stack and storage. To minimize the contention, properly prioritizing I/Os is crucial but the effectiveness of existing approaches is limited for two reasons. First, statically deciding the priority of an I/O is insufficient since high-priority tasks can wait for low-priority I/Os due to I/O priority inversion. Second, multiple independent layers in modern storage stacks are not holistically considered by existing approacheswhich thereby fail to effectively prioritize I/Os throughout the I/O path. In this paper, we propose a request-centric I/O prioritization that dynamically detects and prioritizes I/Os delaying request handling at all layers in the I/O path. The proposed scheme is implemented on Linux and is evaluated with three applications, PostgreSQL, MongoDB, and Redis. The evaluation results show that our scheme achieves up to 53% better request throughput and 42× better 99th percentile request latency (84 ms vs. 3581 ms), compared to the default configuration in Linux.
| Year | Citations | |
|---|---|---|
Page 1
Page 1