MGLRU Kernel Mongodb Test Bench for RHEL 8.4
!! Warning: This code comes with absolutely no warrantey or any sort. Use at your own risk !!
-
Red Hat Enterprise Linux 8.4 Have only tested this on this specific Distro. However can work on other RHEL based distros to.
-
Disk with atleast 128GiB space to host Mongodb Data Files
-
Atleast 140GiB of disk space on the partition that will run the bench
!! Warning: Contents of MONGODB_DISK
are formatted and lost
# cd <home-dir>
# export MONGODB_DISK=/dev/<disk-name>; curl https://raw.githubusercontent.com/vaibhav92/mglru-benchmark/auto_build/build.sh | bash -s
This would install+pull+build the needed dependecies and start the MGLRU benchmark after booting into the base kernel
# systemctl stop mglru-benchmark;
# systemctl disable mglru-benchmark;
Results will be collected in the directory <home-dir>/mglru/result
Provided results.py
python script can traverse the results directory and generate a CSV file out the stdout which can then be imported in the analysis tool
# python3 results.py <home-dir>/mglru/result > results.csv
#Test-Methodlogy
- Pull & Build testing artifact v5.16 Base Kernel, MGLRU Kernel, MongoDB, YCSB & Qemu for qemu-img tools
- Format and mount provided MongoDB Data disk with ext4.
- Generate Systemd service/slice files for MongoDB and place them into /etc/systemd/system/
- Generate MongoDB configration pointing to the data disk mount.
- Start the built MongoDB instance.
- Ensure that MongoDB is running.
- Ensure that MongoDB instance is stopped.
- Unmount the data disk and reformat it with ext4.
- Restart MongoDB.
- Spin off YCSB to load data into the Mongo instance.
- Stop MongoDB + Unmount data Disk
- Create a qcow2 image of the data disk and store it with test data.
- Kexec into base kernel.
- Select the distribution to be used for YCSB from {"Uniform","Exponential","Zipfan"}
- Restore the MongoDB qcow2 data disk Image to the disk
- Mount the data disk and restart MongoDB daemon.
- Start YCSB to generate the workload on MongoDB.
- Once finished collect results.
- Kexec into next-kernel which keeps switching between Base-Kernel & MGLRU-Kernel when all three distriutions have been tested.