Distalyzer is a project aimed at helping developers of distributed systems understand and debug their systems in an easier and automated manner. Currently, it can automatically diagnose performance problems in distributed systems. Distalyzer achieves this by comparing executions with bad performance against another set of comparable executions with better performance, using statistical and machine learning techniques. The root cause is visually presented to the user, and therefore the user need not be an expert at the whole distributed system.
- The source code is available as a Mercurial repository on BitBucket
- Instructions on building and running Distalyzer are available in the Wiki.
The logs used for the NSDI 2012 paper are also available for download, together with instructions on running Distalyzer against them. These should generate the same graphs as reported in the paper. The systems considered for analysis include:
- TritonSort (sorting world record holder) — diagnose a known performance issue.
- Two different BitTorrent implementations — Transmission and Azureus, to identify performance problems in one.
- HBase — a large scale data store (open-source version of BigTable), where we identified performance problems with some requests.
Please refer to the paper for more details on the systems, logs and bug descriptions.
“Structured Comparative Analysis of Systems Logs to Diagnose Performance Problems”. Karthik Nagaraj, Charles Killian, Jennifer Neville. Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI 2012). San Jose, CA. 25-27 April, 2012. PDF
This material is based upon work supported by the National Science Foundation under Grant No. 1054567. We are grateful for their support. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.