Full Stack Tuning for a 100x Load Increase and 40x Better Response Times
A world that wants full stack developers also needs full stack tuners. That tuning process, or at least the outline of a full stack tuning process is something Ronald Bradford describes in not quite enough detail in Improving performance – A full stack problem.
The general philosophy is:
- Understanding were to invest your energy first, know what the return on investment can be.
- Measure and verify every change.
He lists several tips for general website improvements:
- Using a CDN for assets
- Compressing content
- Making fewer requests (web, cache, database)
- Asynchronous management
- Optimizing your SQL statements
- Have more memory
- Using SSD’s for database servers
- Updating your software versions
- Adding more servers
- Configuring your software correctly
More generally:
- Knowing server CPU saturation verses single core CPU saturation.
- Network latency detection and mitigation.
- What are the virtualization mode options of virtual cloud instances?
- Knowing the network stack benefits of different host operating systems.
- Simulating production load is much harder than it sounds.
- Profiling, Profiling, Profiling.
- Instrumentation can be misleading. Knowing how different monitoring works with sampling and averaging.
- Tuning the stack is an iterative process.
- The simple greatest knowledge is to know your code, your libraries, your dependencies and how to optimize each specific area of your technology stack.
- Not everything works, some expected wins provided no overall or observed benefits.
- There is always more that can be done. Knowing when to pause and prioritize process optimizations over system optimizations.
While we don't get the detail that we would like on each item, the overall thought process is something worth looking at.