ContainerTracer
0.1
|
Container Tracer is a tool that measures I/O performance per container. This program complements lacks of cgroup and container building sequence the existing I/O performance measurement program like fio and filebench.
Currently, Container Tracer uses trace-replay to measure the I/O performance of each container.
This program can run on the system which follows the POSIX standards.
But in these documents and our testing was based on the system which is described in the following table.
So, when you build and run this program you have to care about this information.
item | content |
---|---|
Operting System | Ubuntu 18.04 |
Kernel | linux 4.19 |
The composition of the project is as follows.
runner
directory subdirectory test
has unit-test program of each driver of runner.
You have to check this link
In common, you must do the following.
Since we are using Flask, you must install Flask and install the related package first.
And you can run this program with the following command in the project root directory.
You can get more information from this link.
You download the source code and install necessary programs and libraries following.
If you want to build by clang
compiler then you must change the SConstruct
file's CC
section' gcc
to clang
and follow like below.
Based on the following commands you do the build and unit testing. This execution results are stored in ./build/debug
.
If you want to build the release mode then you do the following. This execution results are stored in ./build/release
Moreover, you can install the release mode of runner libraries by following commands. If you want to install the debug mode then just change the sudo scons install
to sudo scons DEBUG=True install
Under the redhat distribution, you must care about two things.
First, you have to check
/etc/ld.so.conf
file has the line/usr/local/lib
. If not you add that line.Second, if you encounter an error that related to the
jemalloc
you must build thejemalloc
library based on this link.
Additionally, you can get information about how to make the driver program of the runner from this link
DEBUG=True
enables us to print all information about debugging. This expects to be made you to easily debug our program.trace-replay
needs the superuser privileges, you must run this program with superuser privileges.sudo scons test
doesn't make a compile_commands.json
file. So, if you want to generate that file then must only do scons
.trace-replay
does direct-IO, this may be destructing your disk's file system. So, you must run this program under an empty disk or virtual disk.{"driver": "<DRIVER-NAME>", "setting": {...}}
. And setting
field has driver dependant contents.You must follow the contributing rules in https://github.com/I-O-Benchmark-On-Container/ContainerTracer/blob/master/CONTRIBUTING.md "this link".