Wednesday, November 2, 2011

Improving Per-Node Efficiency in the Datacenter with New OS Abstractions

This paper introduces a new operating system, Akaros, being built by an army of Eric Brewer. The main goal of Akaros is to fully utilize the potential peak performance of commodity large-scale SMP servers. The authors point out that most efforts on datacenter network have been made for scalability across multiple notes, while missing lots of opportunities in improving per-node efficiency (I totally agree).

The key principle of Akaros is to give applications more understanding and control of underlying hardware for optimal performance. This may seem similar to the Corey many-core operating system from MIT, but Akaros takes much less radical way than Corey's exokernel architecture.

I summarize my comments and concerns:
  • Many features of MCP, such as process-core affinity and core isolation, are already available in current Linux kernels. Many applications do not adopt them because of portability issues or low understanding of them.
  • Giving applications more control with MCP abstraction would lead to suboptimal performance, as each application has an isolated view. I think the operating system should be in charge of the control for system-wide optimal performance.
  • Linux 2.6 kernel already has the unified asynchronous interface for I/O internally.
  • Zero copy I/O is now commonly considered unnecessary, as the evolution of CPU micro-architecture and new technologies such as memory-to-memory DMA have made it efficient enough. In most cases, bookkeeping overhead of zero-copy I/O (e.g., page management) exceeds the cost of copy itself.

1 comment: