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 ...
Get Building Scalable Web Sites now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.