S-Space College of Engineering/Engineering Practice School (공과대학/대학원) Dept. of Computer Science and Engineering (컴퓨터공학부) Theses (Ph.D. / Sc.D._컴퓨터공학부)
I/O Performance Analysis and Optimizations for Smartphones
스마트폰을 위한 I/O 성능 분석 및 최적화
- 공과대학 컴퓨터공학부
- Issue Date
- 서울대학교 대학원
- 학위논문 (박사)-- 서울대학교 대학원 : 공과대학 컴퓨터공학부, 2018. 8. 김지홍.
- Application 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.
- Files in This Item: