CPU-Bound vs I/O-Bound Work
Problem
Your report takes ten seconds to generate. You give the application more CPU capacity, but the report still takes ten seconds. The upgrade has not addressed the delay.
Solution — CPU-Bound and I/O-Bound Work
Work is CPU-bound when computation limits its progress: compressing a file, resizing images, or calculating a forecast. A faster processor, a better algorithm, or parallel execution across available cores may help. Extra cores help only when the work can use them.
Work is I/O-bound when progress mainly depends on input or output: reading a disk, receiving network data, or waiting for a database response. If the report spends nine seconds waiting for its query, a faster application processor changes little. Improve the query or data access first. Asynchronous I/O can free workers to handle other requests while waiting; it does not make the database answer sooner.
Measure CPU time, individual core usage, and time spent waiting. Low average CPU can hide one fully occupied core. A request can also change character: first it waits for data, then it performs an expensive calculation.
Core idea: improve the resource that limits progress; more processing power cannot remove every kind of waiting.