Framework for Analyzing Android I/O Stack Behavior: From Generating the Workload to Analyzing the Trace †
Abstract
:1. Introduction
2. Problem Assessment
2.1. I/O Characteristics of Android Based Devices
2.2. Issues with Existing Tools
2.3. Requirements for Characterizing Android I/O
- Identify the file type for a given block. We define six file types: SQLite DB, SQLite Journal, executable, multimedia, resources, and other files. From the logical block address captured by block access trace tool [16], we identify the type of a file to which the respective block belongs. This process consists of two steps. First, from a logical block address, the proposed tool identifies the inode number of the file to which the logical block address belongs. Then, from the inode number, it identifies the file type of the respective file;
- Identify the application for a given block. The proposed tool can identify the application that originally issued an I/O request. Different from legacy Linux kernel, Android I/O subsystem delegates the handling of the I/O requests to special daemon, mmcqd. From the block device layer, mmcqd is viewed as an application for a given I/O request. We need to find the original application for a given I/O, not mmcqd.
2.4. Replaying the Real World Traces
3. AndroStep
3.1. Mobibench
Function | Mobibench | IOzone [12] | AndroBench [14] | |
---|---|---|---|---|
Workload | sequential write | O | O | O |
sequential read | O | O | O | |
random read | O | O | O | |
random write | O | O | O | |
write()+fsync() | O | X | X | |
multi-thread | O | O | X | |
SQLite operation | O | X | O | |
Output | throughput | O | O | O |
CPU utilization | O | O | X | |
number of context switch | O | X | X | |
Options | exe environment | shell/app | shell | app |
separate file I/O operation | O | X | X | |
separate SQLite operation | O | X | X | |
file sync mode | O | O | X | |
SQLite journal mode | O | X | X |
3.2. MOST: Mobile Storage Analyzer
1 | I/O completion time |
2 | Flags for read and write |
3 | Sector address and I/O size |
4 | Process ID and process name |
5 | Block type: metadata, journal, or data block |
6 | File name in case of data block |
3.3. Mobigen: Mobile Real Workload Generator
4. Experiment
4.1. Accuracy
4.2. New Features
4.3. I/O Characterization of Android Applications with MOST
4.4. Trace Replay
Attributes | ||
---|---|---|
Runtime(sec) | 120 | 120 |
Lines (strace out) | 25,516 | 22,349 |
Lines (Mobigen out) | 23,231 | 20,641 |
Number of threads | 107 | 81 |
Write size(MB) | 2.81 | 1.91 |
Read size(MB) | 1.52 | 3.11 |
5. Conclusions
Acknowledgements
References
- Jeong, S.; Lee, K.; Hwang, J.; Lee, S.; Won, Y. AndroStep: Android Storage Performance Analysis Tool. In Proceedings of the First European Workshop on Mobile Engineering ME13, Aachen, Germany, 26–28 February 2013; Volume 215.
- Meeker, M. 2013 Internet Trends Report; Kleiner Perkins Caufield & Byers: Snyder, TX, USA, 2013. [Google Scholar]
- Kim, H.; Agrawal, N.; Ungureanu, C. Revisiting Storage for Smartphones. In Proceedings of the 10th USENIX Conference on File and Storage Technologies, San Jose, CA, USA, 14–17 February, 2012.
- SQLite Homepage. Available online: http://www.sqlite.org/ (accessed on 11 December 2013).
- Mathur, A.; Cao, M.; Bhattacharya, S.; Dilger, A.; Tomas, A.; Vivier, L. The New ext4 Filesystem: Current Status and Future Plans. In Proceedings of the Linux Symposium, Ottawa, Canada, 27–30 June 2007.
- Axboe, J. CFQ IO Scheduler. In Presented at linux. conf. au, Sydney, Australia, 15–17 January 2007.
- Lee, K.; Won, Y. Smart Layers and Dumb Result: IO Characterization of an Android-Based Smartphone. In Proceedings of EMSOFT 2012 International Conference on Embedded Software, Tampere, Finland, 7–12 October 2012.
- Jeong, S.; Lee, K.; Lee, S.; Son, S.; Won, Y. I/O Stack Optimization for Smartphones. In Proceedings of the USENIX Annual Technical Conference, San Jose, CA, USA, 26–28 June 2013.
- Hsu, W.W.; Smith, A.J. Characteristics of I/O traffic in personal computer and server workloads. IBM Syst. J. 2003, 42, 347–372. [Google Scholar] [CrossRef]
- Zhou, M.; Smith, A.J. Analysis of Personal Computer Workloads. In Proceedings of the 7th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems, MASCOTS, College Park, MD, USA, 24–28 October 1999; pp. 208–217.
- Harter, T.; Dragga, C.; Vaughn, M.; Arpaci-Dusseau, A.C.; Arpaci-Dusseau, R.H. A File is not a File: Understanding the I/O Behavior of Apple Desktop Applications. In SOSP; Wobber, T., Druschel, P., Eds.; ACM: New York, NY, USA, 2011; pp. 71–83. [Google Scholar]
- IOzone Filesystem Benchmark. Available online: http://www.iozone.org/ (accessed on 11 December 2013).
- Coker, R. Bonnie++ File-System Benchmark. Available online: http://www.coker.com.au/bonnie++ (accessed on 11 December 2013).
- Kim, J.M.; Kim, J.S. AndroBench: Benchmarking the Storage Performance of Android-Based Mobile Devices. In Frontiers in Computer Education; Sambath, S., Zhu, E., Eds.; Springer: Berlin, Germany, 2012; Volume 133, pp. 667–674. [Google Scholar]
- Kim, H.; Lee, M.; Han, W.; Lee, K.; Shin, I. Aciom: Application Characteristics-Aware Disk and Network I/O Management on Android Platform. In Proceedings of the International Conference on Embedded Software (EMSOFT), Taipei, Taiwan, 9–14 October 2011; pp. 49–58.
- Axboe, J.; Brunelle, A.D. Blktrace User Guide. Available online: http://www.cse.unsw.edu.au/~aaronc/iosched/doc/blktrace.html (accessed on 11 December 2013).
- Anderson, E.; Kallahalla, M.; Uysal, M.; Swaminathan, R. Buttress: A Toolkit for Flexible and High Fidelity I/O Benchmarking. In Proceedings of the 3rd USENIX Conference on File and Storage Technologies, San Fransisco, CA, USA, 31 March–2 April 2004; pp. 45–58.
- Joukov, N.; Wong, T.; Zadok, E. Accurate and Efficient Replaying of File System Traces. In Proceedings of the 4th USENIX Conference on File and Storage Technologies, San Fransisco, CA, USA, 13–16 December 2005; p. 25.
- Mesnier, M.P.; Wachs, M.; Sambasivan, R.R.; Lopez, J.; Hendricks, J.; Ganger, G.R.; O’Hallaron, D. Trace: Parallel Trace Replay with Approximate Causal Events. In Proceedings of the 5th USENIX Conference on File and Storage Technologies, San Jose, CA, USA, 13–16 February 2007; p. 24.
- Agrawal, N.; Arpaci-Dusseau, A.C.; Arpaci-Dusseau, R.H. Towards realistic file-system benchmarks with CodeMRI. SIGMETRICS Perform. Eval. Rev. 2008, 36, 52–57. [Google Scholar] [CrossRef]
- May, J. Pianola: A Script-Based I/O Benchmark. In Proceedings of the Petascale Data Storage Workshop, Austin, TX, USA, 17 November 2008; pp. 1–6.
- Mobile Benchmark. Available online: https://github.com/ESOS-Lab/mobibench (accessed on 11 December 2013).
- Mobile Storage Analyzer. Available online: https://github.com/ESOS-Lab/MOST (accessed on 11 December 2013).
- Mobile Real Workload Generator. Available online: https://github.com/ESOS-Lab/Mobibench/tree/master/MobiGen (accessed on 11 December 2013).
- Ts’o, T. Debugfs. Available online: http://linux.die.net/man/8/debugfs (accessed on 11 December 2013).
- Strace: System Call Tracer. Available online: http://sourceforge.net/projects/strace/ (accessed on 11 December 2013).
- Ruby: Ruby Script. Available online: https://www.ruby-lang.org (accessed on 11 December 2013).
- Samsung Galaxy S4. Available online: http://www.samsung.com/global/microsite/galaxys4/ (accessed on 11 Decermber 2013).
- Write-Ahead Logging. Available online: http://www.sqlite.org/wal.html (accessed on 11 Decermber 2013).
- Huang, Q.; Birman, K.; van Renesse, R.; Lloyd, W.; Kumar, S.; Li, H.C. An Analysis of Facebook Photo Caching. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, PA, USA, 3–6 November 2013; pp. 167–181.
- *Primitive version of this paper has been presented at the 1st European Workshop on Mobile Engineering (ME13) [1].
© 2013 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).
Share and Cite
Jeong, S.; Lee, K.; Hwang, J.; Lee, S.; Won, Y. Framework for Analyzing Android I/O Stack Behavior: From Generating the Workload to Analyzing the Trace. Future Internet 2013, 5, 591-610. https://doi.org/10.3390/fi5040591
Jeong S, Lee K, Hwang J, Lee S, Won Y. Framework for Analyzing Android I/O Stack Behavior: From Generating the Workload to Analyzing the Trace. Future Internet. 2013; 5(4):591-610. https://doi.org/10.3390/fi5040591
Chicago/Turabian StyleJeong, Sooman, Kisung Lee, Jungwoo Hwang, Seongjin Lee, and Youjip Won. 2013. "Framework for Analyzing Android I/O Stack Behavior: From Generating the Workload to Analyzing the Trace" Future Internet 5, no. 4: 591-610. https://doi.org/10.3390/fi5040591
APA StyleJeong, S., Lee, K., Hwang, J., Lee, S., & Won, Y. (2013). Framework for Analyzing Android I/O Stack Behavior: From Generating the Workload to Analyzing the Trace. Future Internet, 5(4), 591-610. https://doi.org/10.3390/fi5040591