Publications

Detailed Information

I/O Performance Analysis and Optimizations for Smartphones : 스마트폰을 위한 I/O 성능 분석 및 최적화

DC Field Value Language
dc.contributor.advisor김지홍-
dc.contributor.author한상욱-
dc.date.accessioned2018-11-12T00:57:56Z-
dc.date.available2018-11-12T00:57:56Z-
dc.date.issued2018-08-
dc.identifier.other000000153216-
dc.identifier.urihttps://hdl.handle.net/10371/143172-
dc.description학위논문 (박사)-- 서울대학교 대학원 : 공과대학 컴퓨터공학부, 2018. 8. 김지홍.-
dc.description.abstractApplication response times are critical to the experience of smartphone users. In order to reduce the response time of applications, the performance of major computation processing devices such as CPU and GPU has been improved greatly year by year. However, the I/O performance of the smartphone storage device, which is one of the crucial factors for the response time, has not been improved noticeably even its rapid advances in capacity. Therefore, the storage I/O performance becomes a bottleneck in smartphone performance. Furthermore, many studies reported that the storage I/O performance drops significantly under certain conditions. When the storage I/O performance exhibits drastic performance degradation, the application response time increases significantly, adversely affecting the user experience. This dissertation attempts to address two key research questions towards achieving rapid application response: 1) How does the storage I/O performance affect the smartphone application response time? and 2) How can we improve the app performance with I/O optimization techniques?.

In order to quantitatively analyze the impact of smartphone storage devices on application response times, we first measure the time the CPU waits for I/O processing. As a result of the analysis, the average iowait portion that CPUs wait for completion of I/O processing ranges between 23% and 65%. Furthermore, it was observed that the iowait value increases depending on the state of the storage device, thus the application response time can be greatly delayed. When we further investigated the root causes of I/O performance degradation of storage devices with high iowait values, 1) high storage utilization and 2) background application behavior are analyzed as root causes. In order to find I/O performance bottlenecks for a significant drop in storage performance, we implemented IOPro, a tool to collect to analyze I/O activities from all I/O stack. As the analysis result of I/O performance bottlenecks using IOPro, in high storage utilization case, we found that file fragmentation occurred frequently so that the I/O execution times of the block I/O layer and the device driver layer were significantly increased. In case of the background I/Os, FG-BG I/O interference often occurred and the I/O performance dropped significantly in the page cache and the storage device.

Unlike a server/desktop computing system, the I/O performance degradation due to file fragmentation and background application operations was more frequent due to the inherent characteristics of I/O stacks in smartphones, and the performance degradation became also larger. In the case of file fragmentation, the high storage utilization and frequent application updates were the causes for increased file fragmentation. Also, unlike NVMe SSDs, the poor random performance and the short queue length were the causes for the large performance degradation. In case of FG-BG interference, memory bottlenecks due to the small capacity of smartphone memory and the large size of the Android platform caused frequent interferences. In addition, unlike a server/desktop computing system, frequent data flushing and high lock overhead of the page cache were the causes of the large performance degradation.

This dissertation proposes performance optimization techniques at the system level for NAND flash-based storage devices of smartphones. First, we propose a decoupled defragmenter (janusd), which supports two defraggers, a logical defragger and a physical defragger. The logical defragger, which takes advantage of the flash storages internal logical-to-physical mapping table, supports logical defragmentation without data copy. Janusd achieves the effect of full file defragmentation without reducing the flash lifetime. Our experimental results show that janusd can achieve at least the same level of I/O performance improvement as e4defrag without reducing the flash lifetime, thus making janusd an attractive defragmentation solution for mobile flash storage. Second, we suggest a foreground app-aware I/O management scheme, called FastTrack, that accelerates foreground I/O requests by 1) preempting background I/O requests in the entire I/O stacks including the storage device and 2) preventing foreground apps data from being flushed from the page cache. Our experimental results using a prototype FastTrack implementation on four smartphones show that a foreground app can achieve the equivalent level of user-perceived responsiveness regardless of the number of background apps. Confirmed by the evaluation studies on the proposed I/O performance optimization techniques, our approach has a significant impact on improving the experience of smartphone users.
-
dc.description.tableofcontentsI. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Application Response Time on Smartphones . . . . . . . . . 1

1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1 Emerging Challenges in NAND Flash Storage of Android Smartphones . . . . . . . . . . 4

1.2.2 Existing Performance Improvement Techniques and Their Limitations . . . . . . . . . . 7

1.3 Dissertation Goals . . . . . . . . . . . . . . . . . . . . . . . 8

1.4 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.5 Dissertation Structure . . . . . . . . . . . . . . . . . . . . . 11

II. Background . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.1 Overview of Android I/O Stack . . . . . . . . . . . . . . . . 13

2.1.1 Android I/O Stack . . . . . . . . . . . . . . . . . . 13

2.1.2 Unique Characteristics of Android I/O Stack . . . . 16

2.2 I/O Usage Characteristics of Smartphone Storage . . . . . . 22

2.2.1 High Storage Utilization due to Small Storage Capacity . . 22

2.2.2 Memory Bottleneck due to Small Memory Capacity 24

2.3 Measurement Study for Storage Contribution . . . . . . . . 25

2.3.1 Measurement Setup . . . . . . . . . . . . . . . . . . 26

2.3.2 Storage Contribution to Smartphone Usage . . . . . 27

2.4 I/O Performance Issue of Smartphones . . . . . . . . . . . . 30

2.4.1 I/O Slowdown under High Storage Utilization . . . . 30

2.4.2 I/O Slowdown with Background I/Os . . . . . . . . 31

2.5 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.5.1 Smartphone Storage . . . . . . . . . . . . . . . . . 33

2.5.2 Smartphone Application Delay . . . . . . . . . . . . 34

2.5.3 Linux I/O Schedulers . . . . . . . . . . . . . . . . . 34

2.5.4 File Defragmentation Techniques . . . . . . . . . . 35

2.5.5 I/O-Priority Inheritance Techniques . . . . . . . . . 37

III. I/O Performance Analysis for Smartphones . . . . . . . . . . 39

3.1 Quantitative Analysis Tool of Smartphones . . . . . . . . . 39

3.1.1 Limitations of Existing I/O Analysis Tools . . . . . 39

3.1.2 Design and Implementation of IOPro . . . . . . . . 40

3.1.3 Verification of IOPro Analysis Results . . . . . . . . 43

3.2 I/O Performance Bottleneck Analysis of Smartphones . . . . 46

3.2.1 Experimental Environment . . . . . . . . . . . . . . 46

3.2.2 I/O Performance Bottleneck Analysis . . . . . . . . 50

3.3 Unique I/O Performance Characteristics of Smartphones . . 59

3.3.1 File Fragmentation in Smartphones . . . . . . . . . 59

3.3.2 FG-BG Interference in Smartphones . . . . . . . . . 63

IV. Decoupled Defragmentation Technique for File Fragmentation . . . . 68

4.1 Decoupled Fragmentation on Flash . . . . . . . . . . . . . . 68

4.1.1 Need for Logical Defragmentation . . . . . . . . . . 72

4.1.2 Need for Physical Defragmentation . . . . . . . . . 74

4.2 Overall Architecture of Janusd . . . . . . . . . . . . . . . . 75

4.3 JanusdL: Logical Defragmentation . . . . . . . . . . . . . . 77

4.3.1 Logical Defragmentation . . . . . . . . . . . . . . . 77

4.3.2 Power Failure Recovery . . . . . . . . . . . . . . . 79

4.3.3 Defrag Log Management . . . . . . . . . . . . . . . 82

4.4 JanusdP: Physical Defragmentation . . . . . . . . . . . . . 84

V. Foreground App-Aware I/O Management Technique for FGBG Interference . . . . . . 86

5.1 Root Cause of I/O Slowdown with Background I/Os . . . . . 86

5.1.1 Page Allocation . . . . . . . . . . . . . . . . . . . . 87

5.1.2 Page Replacement . . . . . . . . . . . . . . . . . . 90

5.1.3 Device I/O Scheduling . . . . . . . . . . . . . . . . 92

5.2 Overall Architecture of FastTrack . . . . . . . . . . . . . . 94

5.3 App Status Detector . . . . . . . . . . . . . . . . . . . . . . 96

5.4 Page Allocator . . . . . . . . . . . . . . . . . . . . . . . . 97

5.5 Page Reclaimer . . . . . . . . . . . . . . . . . . . . . . . . 100

5.6 I/O Dispatcher . . . . . . . . . . . . . . . . . . . . . . . . . 101

5.7 Device I/O Scheduler . . . . . . . . . . . . . . . . . . . . . 103

VI. Experimental Evaluations . . . . . . . . . . . . . . . . . . . . 104

6.1 Experimental Setup . . . . . . . . . . . . . . . . . . . . . . 104

6.2 Experimental Results . . . . . . . . . . . . . . . . . . . . . 109

6.2.1 Experimental Results for Decoupled Defragmenter . 109

6.2.2 Experimental Results for Foreground App-Aware I/O Management . . . . . . . . . . 115

6.2.3 Experimental Results with Combined Factors . . . . 121

VII. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

7.1 Summary and Conclusions . . . . . . . . . . . . . . . . . . 128

7.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.2.1 Integrated Hot-Cold Separation Technique Between Page Cache and Storage Device Memory . . . . . . 130

7.2.2 Just-in-Time Storage Management Technique by Observing Application Behavior 131

7.2.3 I/O Priority Differentiation Among Multiple Foreground Applications . . . . . . . . . 133

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
-
dc.language.isoen-
dc.publisher서울대학교 대학원-
dc.subject.ddc621.39-
dc.titleI/O Performance Analysis and Optimizations for Smartphones-
dc.title.alternative스마트폰을 위한 I/O 성능 분석 및 최적화-
dc.typeThesis-
dc.contributor.AlternativeAuthorSangwook Shane Hahn-
dc.description.degreeDoctor-
dc.contributor.affiliation공과대학 컴퓨터공학부-
dc.date.awarded2018-08-
Appears in Collections:
Files in This Item:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share