An Implementation of Page Allocation Shaping for Energy Efficiency

Main memory in many tera-scale systems requires tens of kilowatts of power. The resulting energy consumption increases system cost and the heat produced reduces reliability. Emergent memory technologies will provide systems the ability to dynamically turn-on (online) and turn-off (offline) memory devices at runtime. This technology, coupled with slack in memory demand, offers the potential for significant energy savings in clusters of servers. However, to realize these energy savings, OS-level memory allocation and management techniques must be modified to minimize the number of active memory devices while satisfying application demands. We propose several page shaping techniques and structural enhancements to proactively and reactively direct allocations to a minimal number of devices. To evaluate these techniques on real systems, we implemented these shaping techniques in the Linux kernel. Experiments using our OS extensions coupled with a simple history-based heuristic (to track demand and control state transitions) yield up to 60% energy savings with less than 1% performance loss for various benchmarks including lmbench and SPEC.

[1]  David L. Black,et al.  Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures , 1987, IEEE Trans. Computers.

[2]  Steven M. Hand,et al.  Self-paging in the Nemesis operating system , 1999, OSDI '99.

[3]  Carla Schlatter Ellis,et al.  Memory controller policies for DRAM power management , 2001, ISLPED '01.

[4]  Kang G. Shin,et al.  Design and Implementation of Power-Aware Virtual Memory , 2003, USENIX ATC, General Track.

[5]  Jon Haas,et al.  Fully-Buffered DIMM Technology Moves Enterprise Platforms to the Next Level , 2005 .

[6]  Luca Benini,et al.  System-level power optimization: techniques and tools , 1999, ISLPED '99.

[7]  John L. Hennessy,et al.  WSCLOCK—a simple and effective algorithm for virtual memory management , 1981, SOSP.

[8]  Mel Gorman,et al.  Understanding the Linux Virtual Memory Manager , 2004 .

[9]  Y. Charlie Hu,et al.  The Performance Impact of Kernel Prefetching on Buffer Cache Replacement Algorithms , 2005, IEEE Transactions on Computers.

[10]  Sanjeev Kumar,et al.  Dynamic tracking of page miss ratio curve for memory management , 2004, ASPLOS XI.

[11]  Abraham Silberschatz,et al.  4.2BSD and 4.3BSD as examples of the UNIX system , 1985, CSUR.

[12]  Michael L. Scott,et al.  Simple but effective techniques for NUMA memory management , 1989, SOSP '89.

[13]  Song Jiang,et al.  CLOCK-Pro: An Effective Improvement of the CLOCK Replacement , 2005, USENIX ATC, General Track.

[14]  Mahmut T. Kandemir,et al.  Hardware and Software Techniques for Controlling DRAM Power Modes , 2001, IEEE Trans. Computers.

[15]  Xiaodong Li,et al.  Performance directed energy management for main memory and disks , 2004, ASPLOS XI.

[16]  Carla Schlatter Ellis,et al.  Power aware page allocation , 2000, SIGP.

[17]  Karthick Rajamani,et al.  Energy Management for Commercial Servers , 2003, Computer.

[18]  Ricardo Bianchini,et al.  Power and energy management for server systems , 2004, Computer.