Improving Application Launch Performance on Solid State Drives
- 178 Downloads
Application launch performance is of great importance to system platform developers and vendors as it greatly affects the degree of users’ satisfaction. The single most effective way to improve application launch performance is to replace a hard disk drive (HDD) with a solid state drive (SSD), which has recently become affordable and popular. A natural question is then whether or not to replace the traditional HDD-aware application launchers with a new SSD-aware optimizer. We address this question by analyzing the inefficiency of the HDD-aware application launchers on SSDs and then proposing a new SSD-aware application prefetching scheme, called the Fast Application STarter (FAST). The key idea of FAST is to overlap the computation (CPU) time with the SSD access (I/O) time during an application launch. FAST is composed of a set of user-level components and system debugging tools provided by Linux OS (operating system). Hence, FAST can be easily deployed in any recent Linux versions without kernel recompilation. We implement FAST on a desktop PC with an SSD running Linux 2.6.32 OS and evaluate it by launching a set of widely-used applications, demonstrating an average of 28% reduction of application launch time as compared to PC without a prefetcher.
Keywordsapplication launch performance I/O prefetch solid state drive
Unable to display preview. Download preview PDF.
- Microsoft. Support and Q&A for solid-state drives. http://blogs.msdn.com/e7/archive/2009/05/05/support-and-q-a-for-solid-state-drives-and.aspx, May 2009.
- Dunn M, Reddy A L N. A new I/O scheduler for solid state devices. Technical Report TAMU-ECE-2009-02, Department of Electrical and Computer Engineering, Texas A&M University, 2009.Google Scholar
- Apple Inc. Launch time performance guidelines. http://developer.apple.com/documentation/Performance/Conceptual/LaunchTime/LaunchTime.pdf, April 2006.
- Nadgir N. Reducing application startup time in the Solaris 8 OS. http://developers.sun.com/solaris/articles/reducing_app.html, January 2002.
- Colitti L. Analyzing and improving GNOME startup time. In Proc. the 5th System Administration and Network Engineering Conference, May 2006, pp.1–11.Google Scholar
- Park C, Kim K, Jang Y, Hyun K. Linux bootup time reduction for digital still camera. In Proc. the Linux Symposium, July 2006, pp.239–248.Google Scholar
- Kaminaga H. Improving Linux startup time using software resume. In Proc. the Linux Symposium, July 2006, pp.25–34.Google Scholar
- Microsoft. Windows PC accelerators. http://www.microsoft.com/whdc/system/sysperf/perfaccel.mspx, May 2012.
- Esfahbod B. Preload — An adaptive prefetching daemon [Master’s Thesis]. Graduate Department of Computer Science, University of Toronto, Canada, 2006.Google Scholar
- Russinovich M E, Solomon D. Microsoft Windows Internals. Microsoft Press (4th edition), December 2004, pap.458–462.Google Scholar
- Hubert B. On faster application startup times: Cache stuffing, seek profiling, adaptive preloading. In Proc. the Linux Symposium, July 2005, pp.245–248.Google Scholar
- Prefetch: Linux solution for prefetching necessary data during application and system startup. http://code.google.com/p/prefetch/, August 2007.
- Chen F, Koufaty D A, Zhang X. Understanding intrinsic characteristics and system implications of flash memory based solid state drives. In Proc. the 11th ACM SIGMETRICS International Joint Conference on Measurement and Modeling of Computer Systems, June 2009, pp.181–192.Google Scholar
- Dirik C, Jacob B. The performance of PC solid-state disks (SSDs) as a function of bandwidth, concurrency, device architecture, and system organization. In Proc. the 36th International Symposium on Computer Architecture, June 2009, pp.279–289.Google Scholar
- Kim H, Ahn S. BPLRU: A buffer management scheme for improving random writes in flash storage. In Proc. the 6th USENIX Conference on File and Storage Technologies, February 2008, Article No.16.Google Scholar
- Kim J, Oh Y, Kim E, Choi J, Lee D, Noh S H. Disk schedulers for solid state drivers. In Proc. the 7th ACM International Conference on Embedded Software, October 2009, pp.295–304.Google Scholar
- Bhadkamkar M, Guerra J, Useche L, Burnett S, Liptak J, Rangaswami R, Hristidis V. BORG: Block-reORGanization for self-optimizing storage systems. In Proc. the USENIX Conference on File and Storage Technologies, February 2009, pp.183–196.Google Scholar
- Li Z, Chen Z, Srinivasan S M, Zhou Y. C-Miner: Mining block correlations in storage systems. In Proc. the 3rd USENIX Conference on File and Storage Technologies, March 31-April 2, 2004, pp.173–186.Google Scholar
- Axboe J. Block IO tracing. http://www.kernel.org/git/?p=linux/kernel/git/axboe/blktrace.git;a=blob;f=README, September 2006.
- Wine User Guide. http://www.winehq.org/docs/wineusr-guide/index, 8 May 2012.
- Papathanasiou A E, Scott M L. Energy efficient prefetching and caching. In Proc. the USENIX Annual Technical Conference, June 2004, p.22.Google Scholar
- Kotz D, Ellis C S. Practical prefetching techniques for parallel file systems. In Proc. the 1st International Conference on Parallel and Distributed Information Systems, December 1991, pp.182–189.Google Scholar
- Vellanki V, Chervenak A L. A cost-benefit scheme for high performance predictive prefetching. In Proc. the ACM/IEEE Conference on Supercomputing, November 1999, Article No. 50.Google Scholar
- Pai R, Pulavarty B, Cao M. Linux 2.6 performance improvement through readahead optimization. In Proc. the Linux Symposium, July 2004, pp.393–403.Google Scholar
- Mowry T C, Demke A K, Krieger O. Automatic compilerinserted I/O prefetching for out-of-core applications. In Proc. the 2nd USENIX Symposium on Operating Systems Design and Implementation, October 1996, pp.3–17.Google Scholar
- VanDeBogart S, Frost C, Kohler E. Reducing seek overhead with application-directed prefetching. In Proc. the USENIX Annual Technical Conference, June 2009, p.24.Google Scholar
- Yang C K, Mitra T, Chiueh T C. A decoupled architecture for application-specific file prefetching. In Proc. the FREENIX Track: USENIX Annual Technical Conference, June 2002, pp.157–170.Google Scholar
- Chang F, Gibson G A. Automatic I/O hint generation through speculative execution. In Proc. the 3rd USENIX Symposium on Operating Systems Design and Implementation, February 1999, pp.1–14.Google Scholar
- Cao P, Felten E W, Karlin A R, Li K. A study of integrated prefetching and caching strategies. In Proc. the ACM SIGMETRICS Joint International Conference on Measurement and Modeling of Computer Systems, May 1995. pp.188–197.Google Scholar
- Gill B S, Modha D S. SARC: Sequential prefetching in adaptive replacement cache. In Proc. the USENIX Annual Technical Conference, April 2005, pp.293–308.Google Scholar
- Patterson R H, Gibson G A, Ginting E, Stodolsky D, Zelenka J. Informed prefetching and caching. In Proc. the 15th ACM Symposium on Operating Systems Principles, December 1995, pp.79–95.Google Scholar