Shared server guidance · Question & answer

How do I choose enough CPU and RAM for a server?

Choose CPU and memory from representative workload measurements and application requirements. CPU demand depends on the work each request performs and the number processed together; memory depends on active processes, caches, datasets and operating-system needs. Daily visitor totals alone cannot size a server.

BeginnerLinux and Windows dedicated servers and VPSs; planning guidance
Go to the answer

Before you start

  • Application requirements and existing measurements, or a representative test environment.

Instructions

1. Measure the busy periods

Record request rate, concurrent sessions, CPU use, memory pressure, response times and background jobs during normal peaks. Include scheduled reports, imports and maintenance. Keep enough detail to distinguish a sustained resource limit from a short burst or a slow external dependency.

2. Explain the limiting resource

Check whether the application can use multiple cores. A single busy worker may benefit from stronger per-core performance, while parallel jobs can use additional cores. For memory, assess active working data and process growth; filesystem cache is not automatically wasted RAM.

3. Test the proposed capacity

Run an authorised load test outside production with a realistic mix of operations. Set response-time and error-rate acceptance criteria, allow for expected growth and check performance when maintenance runs. Review whether the plan offers sustained or burst CPU behaviour and how an upgrade is performed.

Check the result

  • The proposed server meets the target request rate and latency without sustained memory pressure.
  • Capacity assumptions and the point for a future upgrade are recorded.

Troubleshooting

More CPU did not improve the application
Inspect storage latency, database waits, external calls and single-threaded work. Additional processors cannot remove every bottleneck.

Official references

Use the documentation for your installed version when a flag, service name or platform feature differs.