A Python-based Block-trace Analyser. It comes with a book on "block trace analysis and storage system optimization". Besides, a Matlab version is also provided.
Author: Jun Xu (jun.xu@wdc.com)
IO event trace analysis is one of the most common techniques for storage system performance analysis. In particular, block-level trace analysis is essential for storage system optimization and design, as most underlying storage devices are in block-level, even the upper-level system to users are in object- or file-level. However, there are very few tools dedicated to this topic. This tool intends to fill this gap and provide a self-inclusive contents for block-level trace analysis techniques, as well as trace parsing and result reporting techniques, based on MATLAB platform.
sudo apt-get install python3-tk
pip install pandas python-pptx dill scipy matplotlib DateTime
cd PBPA
python setup.py install
"Trace Analysis": the main functions to analysing the trace with given format. tens of properties are presented. [Input data] lists_cmd: Nx3 matrix; the first column is starting LBA, the second column is the request size, and the third column is access type (0/write, 1/read) lists_action: Nx2 matrix with the first column as arrival time, and the second coloumn as completion time [Output classes] Over ten classes for various basic and advanced metrics. see the commentrs inside functions
"Report generator": powerpoint report generator with using the lib python-pptx
- load the data file to get the trace matrices "lists_cmd" and "Blktrace Parser" (any traces with the pre-defined matrix format; see the book for the details)
- run the corresponding trace analysis functions based your need; by default, all workload metrices will be analyzed
- run report generator to create a powerpoint slide;
batch_analysis.py & batch_generate_ppt.py provide a demo. for more information, please refer to manual
- add more functions on locality analysis
- add flexiablity in report generator