Vertical Scaling
- In Turkish
- Dikey Ölçekleme
- Pronunciation
- VUR-tih-kul SKAY-ling
In short
Vertical scaling (scaling up) increases a system's capacity by giving a single machine more CPU, memory or faster storage, instead of adding more machines.
What is vertical scaling?
Moving a database from a server with 8 cores and 32 GB of memory to one with 64 cores and 512 GB is vertical scaling. In the cloud it often takes a few clicks: choose a larger instance type and restart. The application doesn't change at all, which makes this the quickest and simplest way to handle growth.
It works especially well for systems that are hard to split, such as a relational database that needs transactions across all its data, or software that was never designed to run on several machines. Modern servers are very large, so a single well-tuned machine can carry far more load than many teams expect, and keeping everything on one node avoids the complexity of distributed systems.
The limits are real, though. Every machine has a maximum size, prices rise steeply for the biggest instances, and upgrading usually means a restart and some downtime. Most importantly, one machine is a single point of failure: if it goes down, so does everything on it, unless a standby replica takes over.
A common misconception is that vertical scaling is old-fashioned and horizontal is always better. Many successful systems scale up first, because it is cheap in engineering time, and scale out only the parts that truly need it. The right choice depends on the bottleneck, the budget and how much downtime the system can accept.
Key takeaways
- Vertical scaling gives one machine more CPU, memory or faster storage.
- It needs no code changes and is the simplest way to grow.
- It suits systems that are hard to split, such as relational databases.
- Machines have size limits, costs rise steeply and upgrades may need downtime.
- One big machine is a single point of failure without a standby.
Readers ask
When is vertical scaling the better choice?
When the system is hard to distribute, such as a single relational database, when growth is moderate, or when the team wants to avoid the complexity of running many nodes. It is often the right first step.
What are the limits of vertical scaling?
There is a maximum machine size, the largest machines are disproportionately expensive, upgrades can require downtime, and everything depends on one machine unless a replica is ready to take over.
Can vertical and horizontal scaling be combined?
Yes, and they usually are. Teams often run a few powerful database servers scaled up, with a larger number of smaller, stateless application servers scaled out behind a load balancer.
Often compared
See also
- Horizontal ScalingSoftware Architecture, p. 23Horizontal scaling (scaling out) increases a system's capacity by adding machines and spreading the work across them, rather than making one machine bigger.
- ScalabilitySoftware Architecture, p. 36Scalability is a system's ability to handle growing amounts of work, such as more users or data, by adding resources without a drop in performance.
- High AvailabilitySoftware Architecture, p. 22High availability is the ability of a system to stay operational nearly all the time, mainly by removing single points of failure through redundancy.
- Virtual MachineDevOps & Cloud, p. 53A virtual machine is a software-based computer that runs its own operating system on shared physical hardware, isolated from other machines on the same host.
- Relational DatabaseDatabases, p. 38A relational database stores data in tables of rows and columns, links those tables through keys, and lets you query and combine the data with SQL.
- AutoscalingDevOps & Cloud, p. 2Autoscaling is the automatic adding or removing of computing resources, such as servers or containers, based on demand to keep performance steady and costs low.
Spotted a mistake or something missing on this page?Suggest an edit