memlog-remote

introduction

Hi! My name is Peter A. H. Peterson. I'm a grad student at UCLA, where I'm conducting some research into memory management schemes. I'm looking for some volunteers to help me collect real-world data about how physical memory usage fluctuates over time. As components like CPUs and disks become more efficient, the un-optimized components begin to be the greediest power consumers. Memory is one component that hasn't seen a lot of optimization for power, and can consume a significant fraction of a system's power -- especially for servers with multiple sticks of RAM. I'd like to know how the fraction of memory used for caching, anonymous memory, the kernel (and others) varies over time, so we can investigate more efficient approaches for future hardware and kernel designs.

As the project develops, I'll post more information here and elsewhere.

how can i help?

You can help me by sending me high-level memory usage information for Linux systems. memlog-remote is a simple script that emails me three kinds of information about your computer:

  1. Configuration variables:
    1. the hostname (real or made up -- your choice)
    2. machine type (e.g., server)
    3. physical memory configuration (optional).
  2. memory usage information from /proc/meminfo
  3. kernel and system hardware information from uname

The email also includes headers, including the sending username (as if you had emailed me from that system). Otherwise, the script does not provide any process information, filesystem, other usernames (apart from the sender), etc.

The data you contribute will be used to create graphs showing the breakdown of memory use by type over time. Here's an example of the email sent by memlog-remote.

Read on for more information including what exactly is collected, and how you can help. And thanks!

ok, i'm in. what do i do?

requirements

You need:

  1. A Linux server that can send email
  2. uname
  3. the /proc filesystem
  4. the script memlog-remote

uname and the /proc filesystem are standard in modern Linux machines, and the script is extremely simple -- you should be able to read it over in just a few seconds.

The machine must be able to send email to the Internet, so more isolated machines probably won't be useful at this time.

setup

All you need to do is:

  1. Download the script memlog-remote
  2. Edit the environment variables in the script, including:
  3. Set up a cron job to run the script once per minute (or less if you prefer, but at least once an hour, please)

Here's a sample personal crontab:

*/1 * * * * /bin/bash ~/bin/memlog-remote &> /dev/null

the DIMMS field

I'm curious to know how memory is used in comparison with the physical memory setup of the machine. The DIMMS field is a colon-separated list of the physical DIMMS in the machine. So for example, my home server has 12G of RAM in 6 2G sticks. That would be represented like so:

DIMMS=2:2:2:2:2:2

You can discover this information using 'sudo lshw -C memory' and looking at the memory bank information. Alternatively, if you'd prefer not to give this information, or if your machine is a VM or doesn't have "physical memory" per se, that's OK -- just enter '0'. Order does not matter, and NUMA information is not necessary.

files

paranoid release and disclaimer

It seems unlikely that this data could be misused, especially if you have used a phony hostname (and I don't release the IPs, which I promise not to). HOWEVER, if you have any qualms WHATSOEVER about how I use this data, please let me know -- otherwise, I and others may publish graphs or tables of some or all of this data. If you'd like to help, but have concerns, I will make sure that your data is not released.

feeling philanthropic?

I will not release complete tables of individual machine data without specific permission. HOWEVER, If you are willing to have anonymized, full versions of your data made publicly available for other researchers (e.g. in a comma-separated summary), please let me know.

acknowledgments

If we use your data in any publication, I'd like to thank volunteers by name in an acknowledgments section. However, if you would like to remain completely anonymous, please let me know.

questions?

Email: pedro@tastytronic.net