brendangregg/perfmodels — explained in plain English
Analysis updated 2026-07-15 · repo last pushed 2014-12-05
Predict whether adding more CPUs to a database cluster will actually improve throughput or hit diminishing returns.
Visualize where system performance will plateau as you scale up resources using sample or real measurement data.
Model response time degradation as system utilization increases using built-in queueing theory scripts.
Estimate the non-parallelizable portion of a workload to understand the maximum speedup possible with additional hardware.
| brendangregg/perfmodels | hadley/mylittlepony | hadley/logger | |
|---|---|---|---|
| Stars | 72 | 18 | 1 |
| Language | R | R | R |
| Last pushed | 2014-12-05 | 2018-11-09 | 2024-10-16 |
| Maintenance | Dormant | Dormant | Stale |
| Setup difficulty | moderate | easy | easy |
| Complexity | 3/5 | 1/5 | 2/5 |
| Audience | ops devops | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires R and gnuplot installed, plus enough understanding of performance theory to adapt the scripts to your specific system.
perfmodels is a collection of analysis tools that help you figure out how well a system will scale as you throw more resources at it. If you've ever wondered whether doubling your server count will actually double your capacity, or whether you'll hit a point of diminishing returns, this project provides the mathematical models to answer that question. The repository includes several models written in R and gnuplot. Some apply Amdahl's Law, a classic principle that accounts for the portion of a task that can't be parallelized. Others use the Universal Scalability Law, which factors in contention and coordination overhead between resources. There's also a queueing theory model that predicts response times as system utilization increases. You feed in sample data, and the tools help you visualize and predict where performance will plateau or degrade. This is built for performance engineers and systems analysts who already work with scalability concepts. For example, someone evaluating whether to add more CPUs to a database cluster could use these models to predict actual throughput gains rather than guessing. The sample data file gives you a starting point to see how the math works before plugging in your own measurements. The README is upfront about a key limitation: these aren't polished, run-it-and-go tools. The author describes them as projects that expect customization for each system you're modeling. You'll need to understand the underlying performance theory to get value from them. Think of this less as a finished application and more as a set of reference implementations and starting points that a knowledgeable practitioner would adapt to their specific infrastructure.
A collection of R and gnuplot scripts that model system scalability using Amdahl's Law, the Universal Scalability Law, and queueing theory. You feed in performance data to predict whether adding more resources will actually improve throughput or hit diminishing returns.
Mainly R. The stack also includes R, gnuplot.
Dormant — no commits in 2+ years (last push 2014-12-05).
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.