Study Ideas

From PEL Wiki

Jump to: navigation, search

Contents

Direct Comparison of Disk and RAM

One of the performance evaluation studies I'd like to do is to compare the performance of running off a memory-mapped disk drive to the performance of running out of memory.

In order to make it a fair comparison, I'll make both types of memory go through my Hardware (PCIe card, Opteron replacement, etc.)

That will give me a good indication of how good my implementation is, because DiskRAM should approximate the speed of RAM and the cost of disk.

Stall Time Study

It's important to know if we need an interrupt when DiskRAM goes to disk.

I want to use performance counters on the Opteron to measure the stall times for benchmarks with DiskRAM and with a disk and RAM implemented on the same hardware. I think the tricky part may be accounting for extra idle time when the OS is waiting for the disk, but has no programs waiting to run. I think that using an interrupt may trade off stall cycles for idle time.

Virtualization

I think it would be interesting to run a virtual machine (think VMWare, Parallels, etc.) with a lot of memory on top of DiskRAM. This would also allow us to run Windows even though LinuxBIOS doesn't support it because of the BIOS call backs. --Update-- Using ADLO and the BOCHS BIOS, you can install Windows on LinuxBIOS.

I also think it is interesting to see the effect of over-subscribing memory using virtual machines as a workload.

Maybe this belongs on Benchmarks

Before using VMware's free player for performance studies, they want to approve it. I have to send mail requesting permission to benchmark@vmware.com.

A random one

With DiskRAM working, you could also relieve pressure from the memory system to find contiguous memory for allocations. You could use it to fool devices and programs into thinking the allocations were contiguous.

Reminders

latency vs. throughput

Responsiveness can tank even when performance goes up. How do we take this into account? What would we need to change in Linux to make sure this doesn't kill us?

Schedutils / util-linux

I think it's important to remember about schedutils, a package that lets you use taskset to set processor affinity, and other details.

It used to be schedutils. It's now incorporated in util-linux.

Parts of util-linux that I want to remember

  • chrt - manipulate real-time attributes of a process (scheduling policy and priorities)
  • ionice - get/set io scheduling class and priority
  • taskset - retrieve or set a process's CPU affinity
  • blockdev - call block device ioctls from the command line
  • dmesg - print or control the kernel ring buffer (don't copy it by hand)
  • hwclock - query and set the hardware clock (RTC)