Chapter 8. Bottlenecks
You’ve created a killer application. You store all your data as UTF-8, you receive and process email like it was candy, your data is well filtered, and you use more external services than you can count. It’s going great, your users love you, and the venture capitalists are circling. And then your application. Grinds. To. A. Halt.
As applications grow, weak spots reveal themselves. Techniques that worked for 10 requests a second start to fail for 100 requests a second. Databases with 10,000 rows work fine but start to choke when they reach 100,000 or 1,000,000. In an ideal world, we would find and solve all of these problems before they happen in production, but there’s always a chance we’ll miss something.
In this chapter we’ll look at techniques for identifying and fixing bottlenecks in our architecture, both before they happen and when they start to bog our systems down. We’ll talk about ways to increase the performance we can get out of our existing hardware so we’re making the most of what we have, before we move on to talking about scaling in the next chapter.
Identifying Bottlenecks
Not all bottlenecks are created equal. Some are going to be trivial fixes, while others will take architectural changes, hardware purchases, and large data and code migration to fix. Before spending any time on attempting to fix the speed problems within our application, we’re going to want to take a look at everything that could possibly be slowing us down and get a good sense ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access