Note: this tester is only tested and fully functional when running on Linux. OSX should be functional but is not supported.
Stress Testing
Currently the tester runs the operations defined inside of fileoperations.h over n number of files and directories in a random order and sequence. Users can edit config.cfg to alter the frequency of certain file operations occurring and the length of the test alongside other features.
Metrics
Throughout the test certain metrics will be recorded and dumped into corresponding .txt files in the metrics directory.
[Throughput: Sequential and Random Access] might deal with caching
[IO Operations: Time to Append]
[Metadata Operations: Time to Rename, Write, Delete]
Clone the repository into the desired testing environment
Install python3 and pip
The formatting of config.cfg is of a key value pair with "=" as the delimiter
All chance parameters are the percentage likelihood a certain operation happens on a given file
test-time is an integer value for the minutes the test will run
Run make init
to establish the test files and test directories. Directories will be in the format of testFiles-#
inside of the TestDirectory directory
Run make run
to run the tester.
Run make viewplots
to obtain the visualization of the metrics.
Rasterized .png files and vectorized .pdf files are stored in metrics directory
.pdf files are recommended
Run make clean
to remove the test directories, files, and any files generated by the test suite
Run make reset
to clean, setup, and run the test suite again
Configurability remains experimental and is not fully tested
Seamless deployment through test machines will be implemented soon through Ansible