A software-agnostic logging framework that exposes hardware-level controls which can impact network-driven behavior. It is currently integrated with Linux 5.5 and a baremetal library OS, EbbRT. It instrumented fine-grained log collect at the network device interrupt layer and uses architecture specific performance monitoring units to store hardware metrics such as instructions, cache-misses, energy use and software metrics such as bytes received and transmitted.
So far, only tested and gathered experimental results for a machine with the following specifications:
Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz, 126 GB RAM, Intel(R) 10 Gigabit Network Connection. Modifications for other architectures/network cards may be required to correctly read specific hardware counters.
ebbrt: Contains link to baremetal EbbRT and instructions for building EbbRT. EbbRT's ixgbe device driver already hasintLogintegrated with it.linux: Contains link to Linux 5.14 and instructions for building kernel andixgbe.kokernel module that hasintLogintegrated.scripts: Contains experimental scripts for four applications in our experimental studynetpipe: A simple ping-pong application for fixed sized messages- ebbrt:
EbbRTimplementation ofnetpipeand scripts to run - linux:
Linuximplementation ofnetpipeand scripts to run
- ebbrt:
nodejs: A HTTP web server running in NodeJS- ebbrt:
EbbRTimplementation ofnodejsand scripts to run - linux:
Linuximplementation ofnodejsand scripts to run
- ebbrt:
mcd: memcached- ebbrt:
EbbRTimplementation ofmemachedand scripts to run - linux:
Linuximplementation ofmemcachedand scripts to run
- ebbrt:
mcdsilo: memcached with a transcational database (Silo)- ebbrt:
EbbRTimplementation ofmemcached-siloand scripts to run - linux:
Linuximplementation ofmemcached-siloand scripts to run
- ebbrt:
tools: Utilities and other guides for how to boot various OSes
We have collected over 4 TB of data from our experimental study, in the processof sanitizing and will post link to download