Building a Useful Performance Baseline for a Linux VPS
Capture the conditions behind a performance measurement so the next release or capacity change can be compared fairly.
A performance baseline records how your application behaves under a known workload. It is useful when a release feels slower, a customer reports intermittent delays, or you need to justify a capacity change. The baseline should be reproducible enough to compare, while small enough to maintain as the application evolves. A collection of unrelated benchmark screenshots rarely meets that goal.
Select representative customer operations
Choose a few important routes or jobs: a cached page, a database-backed search, an authenticated dashboard, and a background export might suit a small web application. Record input size, authentication state, and whether caches are warm. Use safe test accounts and data. Avoid measuring only the fastest route or a synthetic loop that omits the actual dependencies. The workload should resemble the work you expect customers to perform, including the variation that matters to service quality.
Record enough context to compare later
Save the application version, guest resource allocation, operating-system version, worker configuration, database size, and concurrent maintenance tasks. Note the test source location for network-facing measurements. A request from the same data center and one from a customer's region include different network paths. Keep that distinction visible. If you change several conditions at once, the result may still be useful as an operational observation, but it will not isolate the effect of one configuration or plan change.
Measure completion as well as resource use
Record response-time distribution, errors, throughput, and relevant queue behavior alongside CPU, memory, and storage observations. The Prometheus instrumentation guidance provides practical ideas for choosing measurements according to service type. Adapt the selection to your application. A lower CPU percentage is not an improvement if jobs now take twice as long, and a high throughput result is not useful if it includes a large number of failed requests.
Run a controlled comparison
Suppose you are evaluating a change to an application's worker count. Run the same bounded request mix before and after the change, with similar data and cache conditions. Observe latency, error rate, memory, and database connections. If more workers increase contention and make the slowest requests worse, record that result even if the average throughput improves. These are application-specific tradeoffs, not universal rules about the best number of workers. Keep the earlier configuration available for a deliberate rollback.
Refresh the baseline when the workload changes
Repeat the exercise after major releases, meaningful data growth, or a change in customer usage. Preserve older results so a gradual trend remains visible. Define the interval and variation that would justify investigation rather than reacting to every small fluctuation. Use an isolated environment for heavier load tests and place explicit limits on duration, request rate, and data creation. Never run a destructive storage benchmark against a production device to complete a routine baseline sheet.
Compare measured demand with the current LayerOne plan resources and see the plan guide for the broader decision. A useful baseline gives you a consistent question to ask again, with enough context to explain why the answer changed.