Document Type
Dissertation
Degree
Doctor of Philosophy (PhD)
Major/Program
Computer Science
First Advisor's Name
Raju Rangaswami
First Advisor's Committee Title
Committee Chair
Second Advisor's Name
Giri Narasimhan
Second Advisor's Committee Title
Committee Member
Third Advisor's Name
Jason Liu
Third Advisor's Committee Title
Committee Member
Fourth Advisor's Name
Gang Quan
Fourth Advisor's Committee Title
Committee Member
Fifth Advisor's Name
Ming Zhao
Fifth Advisor's Committee Title
Committee Member
Keywords
operating systems, storage, persistent memory, clustering, virtual machine, caching, memory, tiering, asynchronous I/O, system performance
Date of Defense
6-20-2016
Abstract
Operating Systems use fast, CPU-addressable main memory to maintain an application’s temporary data as anonymous data and to cache copies of persistent data stored in slower block-based storage devices. However, the use of this faster memory comes at a high cost. Therefore, several techniques have been implemented to use main memory more efficiently in the literature. In this dissertation we introduce three distinct approaches to improve overall system performance by optimizing main memory usage.
First, DRAM and host-side caching of file system data are used for speeding up virtual machine performance in today’s virtualized data centers. The clustering of VM images that share identical pages, coupled with data deduplication, has the potential to optimize main memory usage, since it provides more opportunity for sharing resources across processes and across different VMs. In our first approach, we study the use of content and semantic similarity metrics and a new algorithm to cluster VM images and place them in hosts where through deduplication we improve main memory usage.
Second, while careful VM placement can improve memory usage by eliminating duplicate data, caches in current systems employ complex machinery to manage the cached data. Writing data to a page not present in the file system page cache causes the operating system to synchronously fetch the page into memory, blocking the writing process. In this thesis, we address this limitation with a new approach to managing page writes involving buffering the written data elsewhere in memory and unblocking the writing process immediately. This buffering allows the system to service file writes faster and with less memory resources.
In our last approach, we investigate the use of emerging byte-addressable persistent memory technology to extend main memory as a less costly alternative to exclusively using expensive DRAM. We motivate and build a tiered memory system wherein persistent memory and DRAM co-exist and provide improved application performance at lower cost and power consumption with the goal of placing the right data in the right memory tier at the right time. The proposed approach seamlessly performs page migration across memory tiers as access patterns change and/or to handle tier memory pressure.
Identifier
FIDC000755
ORCID
orcid.org/0000-0002-3409-6405
Recommended Citation
Campello, Daniel Jose, "Optimizing Main Memory Usage in Modern Computing Systems to Improve Overall System Performance" (2016). FIU Electronic Theses and Dissertations. 2568.
https://digitalcommons.fiu.edu/etd/2568
Included in
Data Storage Systems Commons, OS and Networks Commons, Systems Architecture Commons, Theory and Algorithms Commons
Rights Statement
In Copyright. URI: http://rightsstatements.org/vocab/InC/1.0/
This Item is protected by copyright and/or related rights. You are free to use this Item in any way that is permitted by the copyright and related rights legislation that applies to your use. For other uses you need to obtain permission from the rights-holder(s).