Incident Response Mindset
This is not a generic checklist. This is the internal thought process experienced SREs execute automatically under pressure.
Print this. Memorize it. Practice it.
Table of Contents
- Stabilize Yourself First
- Define the Problem Precisely
- Is This a Resource Saturation Problem?
- Is the Process Alive and Healthy?
- Follow the Request Path End-to-End
- Look for Queues
- Check Recent Changes
- Determine Blast Radius
- Mitigation Before Root Cause
- Form a Hypothesis — Then Test It
- Avoid Common Junior Mistakes
- Communicate Clearly
- Identify the True Root Cause
- Extract Learning After It's Fixed
- The Full Mental Flow (Compressed)
- The Senior SRE Mindset
This is the loop a senior SRE runs automatically under pressure: define the problem precisely, check for resource saturation with the USE method, weigh blast radius, mitigate before root-causing when impact is high, find the true root cause, and extract learning that folds straight back into how the next incident gets defined.
0. Stabilize Yourself First
Before touching anything:
- Slow down.
- Don't restart blindly.
- Don't change multiple things at once.
- Preserve evidence.
Senior rule: First understand. Then act.
1. Define the Problem Precisely
Ask:
- What exactly is failing?
- Since when?
- For whom?
- What changed?
Translate vague alerts into concrete symptoms.
Instead of:
"Site is down"
Define:
HTTP 502 from API service in us-east since 02:14 UTC.
Senior SREs reduce ambiguity immediately.
2. Is This a Resource Saturation Problem?
Always check this first.
Using the USE method (from Systems Performance by Brendan Gregg), for every resource — CPU, Memory, Disk, Network — ask:
- Utilization high?
- Saturation present (queues building)?
- Errors increasing?
If yes → likely bottleneck. If no → look elsewhere.
3. Is the Process Alive and Healthy?
Check:
- Is it running?
- Is it listening on the expected port?
- Is it crashing/restarting?
- Is it stuck (D state, zombie, blocked syscall)?
Commands mentally mapped: ps, ss, top, journalctl, lsof
Senior mindset: A running process is not the same as a healthy process.
4. Follow the Request Path End-to-End
Trace:
Client → Load balancer → App → Cache → DB → External API
Where does it break? Ask at each hop:
- Can I reach it?
- Is latency added here?
- Are errors generated here?
Senior SREs isolate the failure domain quickly.
5. Look for Queues
Everything in systems is a queue:
- CPU run queue
- Disk I/O queue
- TCP backlog
- Connection pools
- Thread pools
- Message brokers
If latency increases → something is waiting somewhere.
Ask: What queue is backing up?
6. Check Recent Changes
What changed in:
- Deployments?
- Config?
- Kernel updates?
- Traffic patterns?
- Certificates?
- DNS?
Senior rule: 80% of incidents correlate with change.
7. Determine Blast Radius
Is it:
- Single host?
- Single AZ?
- Whole region?
- All customers or a subset?
This determines response level and escalation urgency.
8. Mitigation Before Root Cause (If Impact Is High)
If users are down:
- Can we scale horizontally?
- Roll back?
- Restart safely?
- Fail over?
- Reduce traffic?
Mitigate first. Root cause after stability.
This principle is core to Site Reliability Engineering by Google.
9. Form a Hypothesis — Then Test It
Bad SRE: "I think it's memory" → restarts.
Senior SRE:
Hypothesis: memory pressure causing OOM
Evidence: dmesg logs show kill
Test: observe memory growth
Confirm → mitigate
No guessing. Only falsifiable hypotheses.
10. Avoid These Common Junior Mistakes
- Restarting before collecting logs
- Changing 3 things at once
- Assuming the alert is accurate
- Ignoring metrics
- Not checking saturation
- Not communicating clearly
11. Communicate Clearly
During an incident, state:
- What we know
- What we don't know
- What we're doing
- Next update time
Clarity reduces panic more than technical fixes.
12. Identify the True Root Cause
Not:
CPU was high.
But:
CPU was saturated because of unbounded regex in the new release.
Go one layer deeper. Always ask: Why did this happen? Then again. Then again. (5 Whys technique)
13. After It's Fixed — Extract Learning
Post-incident, ask:
- What signal did we miss?
- Was the alert actionable?
- Could automation prevent this?
- Was documentation sufficient?
- Did monitoring detect it early enough?
Senior SREs turn incidents into system improvements.
The Full Mental Flow (Compressed)
When the pager goes off:
- What exactly is broken?
- Who is affected?
- Since when?
- Is any core resource saturated?
- Is the process alive?
- Where in the request path does it fail?
- What changed?
- What's the smallest safe mitigation?
- What evidence confirms root cause?
- How do we prevent recurrence?
The Senior SRE Mindset
They think in:
- Bottlenecks
- Queues
- Backpressure
- Failure domains
- Tradeoffs
- Risk
Not:
"The app is slow."
But:
"The DB connection pool is saturated, causing request queue growth."
Summary
- 💡 First understand, then act — never restart blindly before preserving evidence.
- 🔥 Check resource saturation (USE method) before anything else.
- ⚠️ 80% of incidents correlate with a recent change — check it early.
- ✅ Mitigate before root-causing when user impact is high.
- ⚡ Every hypothesis must be falsifiable and tested against evidence, never guessed.
If You Internalize This
You will:
- Debug faster
- Panic less
- Communicate better
- Avoid dangerous changes
- Earn trust quickly
See Also
- Incident Simulation Labs — practice this mental flow against real incidents
- 90-Day Linux/SRE Roadmap — build the underlying technical depth
- Linux Debugging Reference — the CLI checklist version of this mindset