Performance Bottleneck Analysis: Combine load tests, metrics, and traces to find the real limiting resource
High CPU is not necessarily the root constraint, and a slow database can be the result of upstream retries. Bottleneck analysis follows the request path to find what first limits throughput or amplifies latency.
The Performance Bottleneck Analysis Skill combines traces, saturation signals, and controlled comparisons to distinguish correlation from the constraint worth fixing.
This guide uses concrete scenarios to show how to collect, connect, and interpret evidence so the conclusion can support the next engineering or business decision.
Performance Bottleneck Analysis Skill: what it is for
Performance Bottleneck Analysis is for work that needs a clear, handoff-ready testing judgment. It keeps project material, the basis for each decision, and the next action on the same trail—so a reader can see what to inspect before choosing how to execute and review it. This guide works through one concrete scenario and keeps human decision boundaries visible.
Start with the source Skill
The complete execution contract lives in Performance Bottleneck Analysis prompt. The source directory also contains 3 evaluation cases for checking whether an output follows the contract.
The entry point calls out these constraints:
- validate the workload model first
- require multiple signals for bottleneck claims
- do not equate high utilization with root cause
Begin with project facts
Put the material you have on the table. Gaps may remain; their status needs to stay explicit.
| Material | What to provide | What to do when it is missing |
|---|---|---|
| Goal and scope | Use load reports, service metrics, and traces to identify limiting resources and optimization priority in the order journey | Name journeys outside this pass |
| Version and environment | Requirement version, build, environment, time window | Stay in design or analysis mode |
| Evidence | Requirements, interfaces, logs, metrics, traces, or defects | Separate facts, assumptions, and open questions |
| Decision boundary | Risk approver and actions that are not authorized | Name the owner and next step |
Use a request like this:
Use the performance-bottleneck-analysis Skill.
Task: Use load reports, service metrics, and traces to identify limiting resources and optimization priority in the order journey
Inputs: [versions, links, log paths, or reports]
Scope: [included and excluded objects]
Constraints: [time, data, permissions, compliance]
Audit the inputs first. Order results by risk and evidence strength. Label unsupported claims as assumptions and give a validation method.
Make the result usable by the next person
| Output field | Why it exists | Example status |
|---|---|---|
| Finding or judgment | Describes observed behavior, difference, or risk | Confirmed / Assumption / Open |
| Basis | Points to a version, log, trace, test, or requirement | source_id or link |
| Impact | Explains affected users, journeys, or release decision | P0, P1, or accepted residual risk |
| Next action | Names verification work and an owner | Owner, date, expected evidence |
Do not write “passed” without a run record, query result, or source artifact. Static analysis and runtime proof are different things.
Run one focused pass
Start with a bounded pass—Use load reports, service metrics, and traces to identify limiting resources and optimization priority in the order journey. Put the input version, time window, and accountable owner in one place. Then link each judgment to an artifact. Finish with one validation action that can change the decision.
A bottleneck conclusion must link load stage, resource curve, and a testable change hypothesis. The handoff should include an evidence index, assumptions that still need checking, and an action the next person can run without reconstructing the conversation. Plain work. It holds up.
Run one focused pass
Start with a bounded pass—Use load reports, service metrics, and traces to identify limiting resources and optimization priority in the order journey. Put the input version, time window, and accountable owner in one place. Then link each judgment to an artifact. Finish with one validation action that can change the decision.
A bottleneck conclusion must link load stage, resource curve, and a testable change hypothesis. The handoff should include an evidence index, assumptions that still need checking, and an action the next person can run without reconstructing the conversation. Plain work. It holds up.
Advanced use: turn one analysis into a maintained mechanism
A bottleneck conclusion must link load stage, resource curve, and a testable change hypothesis.
Keep input versions and source IDs with every result. When requirements, code, environment, or data change, recompute only affected judgments and mark them changed, unchanged, or needs-review. Old conclusions are not new evidence.
A three-Skill chain
performance-result-analysis → performance-bottleneck-analysis → capacity-planning-analysis
| Handoff | Payload | Receiver check |
|---|---|---|
| Upstream to performance-bottleneck-analysis | Source versions, scope, risk, open items | Staleness and conflicts |
| performance-bottleneck-analysis to downstream | Judgments, evidence index, residual risk, tasks | Executability and ownership |
| Feedback to performance-bottleneck-analysis | Runs, defects, changed facts | Baseline and regression scope |
Hand over a summary, an evidence index, and locations for the source artifacts. That gives the receiver enough context and keeps the trail recoverable.
Team gates
| Gate | Check | Failure action |
|---|---|---|
| performance-bottleneck-analysis input | Version, environment, sources, and owner | Stop and list gaps |
| performance-bottleneck-analysis artifact | Material claims have basis, status, and impact | Return for evidence |
| performance-bottleneck-analysis execution | Command, query, or verification path is repeatable | Classify infrastructure or test issue |
| performance-bottleneck-analysis decision | Residual risk has an accepter and date | Do not enter the next stage |
Common traps
- Listing checks without input conditions, expected results, or evidence.
- Marking every finding high priority and removing the team’s ability to choose.
- Refusing to produce a bounded first pass, or presenting guesses as facts.
- Treating one success or one anomaly as long-term behavior while ignoring repeated trials and version changes.
Two practical questions
Can I start with incomplete input?
Yes. Produce a constrained first pass with known facts, assumptions, gaps, and the smallest validation action. Missing environment, data, or permission cannot support an execution claim.
When is human confirmation required?
The accountable owner must confirm scope trade-offs, risk acceptance, production actions, data permission, and release decisions. The Skill organizes evidence and options; it does not grant authority.
Run Performance Bottleneck Analysis with one real artifact and keep the input, output, human edits, and verification evidence in the same work chain. That is what makes the next change cheaper to assess.
References
- Performance Bottleneck Analysis prompt:https://github.com/naodeng/awesome-qa-skills/tree/main/skills/en/testing-types/performance-bottleneck-analysis/prompts/performance-bottleneck-analysis.md
- Awesome QA Skills: Performance Bottleneck Analysis Skill source:https://github.com/naodeng/awesome-qa-skills/tree/main/skills/en/testing-types/performance-bottleneck-analysis
- Awesome QA Skills on GitHub:https://github.com/naodeng/awesome-qa-skills
- Performance Bottleneck Analysis Skill details:https://inaodeng.com/en/qaskills/performance-bottleneck-analysis/