Preparing System Software for a World with Terabyte-scale Memories

0sim simulates the behavior of system software (e.g. kernels) on huge-memory systems (e.g. terabytes of RAM).

System softwares are not ready for huge-memory systems. Memcached encounters OOM at 2TB with plenty of memory left.

Linux allows setting vm_dirty below 1% for large memory machines. Thus, for a system with 1TB memory, the system will flush 10GB data.

A machine with multiple terabytes of memory is not common for now. Thus, 0sim is here to simulate one.

There are two ways to simulate a system with a larger memory than the host system:

  • Store on disk
  • Memory compression

0sim choose the later for better performance. This choice is based on the fact that many workloads are data-oblivious. For example, it is okay to save just zeros in a key-value database to verify the correctness. Then, the zeros will have a good compression ratio.

The source code of the simulator is here.