Asked about The tools: debugger, profiler, logs, bisect
A nightly batch job that used to take 20 minutes now takes three hours. How do you find out why?
An answer that works
Check what changed: code, data volume, dependencies, the external APIs it calls. Profile a run on a sample to see where time goes, and look at logs for per-step timings. If a code change is suspected, bisect between the last good and first bad versions.
Then they push further
The profile shows it waiting on network calls that used to be fast. Now what?
Check whether the service slowed down or whether you now make more calls, for example a retry storm or a loop that lost its batching. Logs with per-call timings and counts separate the two.
What gets marked up
Marked up for measuring before guessing and for checking what changed. Jumping to a fix without data is marked down.
Reading an answer is not being able to give one. The section that teaches this is The tools: debugger, profiler, logs, bisect, 4 hours of Debugging.
Learn this properly