Enlightening the I/O Path:
A Holistic Approach for Application Performance
appeared in FAST'17
Jinkyu Jeong Sungkyunkwan University
Enlightening the I/O Path: A Holistic Approach for Application - - PowerPoint PPT Presentation
Enlightening the I/O Path: A Holistic Approach for Application Performance appeared in FAST'17 Jinkyu Jeong Sungkyunkwan University Data-Intensive Applications Relational Document Key-value Column Search 2 Data-Intensive Applications
appeared in FAST'17
Jinkyu Jeong Sungkyunkwan University
2
Relational Key-value Search Column Document
3
Storage Device Operating System
T1
Client
T2 I/O T3 T4 Request Response I/O I/O I/O
Application
Application performance
* Example: MongoDB
4
Storage Device Operating System
T1
Client
T2 I/O T3 T4 Request Response I/O I/O I/O
Application
Application performance
* Example: MongoDB
5
6
10000 20000 30000 200 400 600 800 1000 1200 1400 1600 1800
Operation throughput (ops/sec) Elapsed time (sec) CFQ
Regular checkpoint task 30 seconds latency at 99.99th percentile
10000 20000 30000 200 400 600 800 1000 1200 1400 1600 1800
Operation throughput (ops/sec) Elapsed time (sec) CFQ CFQ-IDLE
7
I/O priority does not help
10000 20000 30000 200 400 600 800 1000 1200 1400 1600 1800
Operation throughput (ops/sec) Elapsed time (sec) CFQ CFQ-IDLE SPLIT-A SPLIT-D QASIO
8
State-of-the-art schedulers do not help much
9
10
11
Storage Device Caching Layer Application File System Layer Block Layer Abstraction
Buffer Cache read() write() FG FG BG BG FG BG BG reorder
12
13
Storage Device Caching Layer Application File System Layer Block Layer
Locks Condition variables
14
Storage Device Caching Layer Application File System Layer Block Layer
Outstanding I/Os
15
100 ms latency at 99.99th percentile
10000 20000 30000 40000 200 400 600 800 1000 1200 1400 1600 1800
Operation throughput (ops/sec) Elapsed time (sec) CFQ CFQ-IDLE SPLIT-A SPLIT-D QASIO RCP
16
17
18
FG lock BG I/O FG inherit BG submit complete FG BG unlock FG wait BG register BG inherit FG BG I/O submit complete wake CV CV CV
19
Block Layer
Q admission stage I/O I/O Sched queueing stage I/O
Non-critical I/O tracking
Descriptor Location Resolver Sector #
PER-DEV ROOT NCIO NCIO NCIO NCIO
delete on completion
20
FG inherit BG BG
Blocked
I/O FG inherit BG wait wait
Blocked
FG inherit BG wait
Blocked at admission stage
21
FG inherit BG BG I/O FG inherit BG FG inherit BG retry reprio
I/O is recorded Task is recorded
inherit
22
23
24
25
26
2000 4000 6000 8000
10GB dataset 60GB dataset 200GB dataset Transaction throughput (trx/sec) CFQ CFQ-IDLE SPLIT-A SPLIT-D QASIO RCP
37% 31% 28%
27
Our scheme improves application throughput w/o penalizing background tasks
5 15 25 35 200 400 600 800 1000 1200 1400 1600 1800
Transaction log size (GB) Elapsed time (sec) CFQ CFQ-IDLE SPLIT-A SPLIT-D QASIO RCP
28
1.E-05 1.E-04 1.E-03 1.E-02 1.E-01 1.E+00 1000 2000 3000 4000 5000 6000
CCDF P[X>=x] Transaction latency (msec) CFQ CFQ-IDLE SPLIT-A SPLIT-D QASIO RCP
100 10-1 10-2 10-3 10-4 10-5
300 msec at 99.999th Our scheme is effective for improving tail latency Over 2 sec at 99.9th
100 10-1 10-2 10-3 10-4 10-5
0th 90th 99th 99.9th 99.99th 99.999th
29
priority inversion in mind for effective I/O prioritization
30
31