High concurrent connections and CPU-heavy SSR do not share the same resource profile in Node.js. API requests, WebSocket connections, background jobs and database traffic should be observed separately.
A small REST API can start around 2 GB, while Next.js SSR, multiple PM2 workers, Redis and a database on the same host may require 4–8 GB or more. Measure heap use and event-loop latency.
Separating TLS/reverse proxy, app processes and database simplifies operations.
Choosing a plan from requests/sec alone without measurement is misleading.
Monitor memory thresholds, logs and process restarts.
node --versionnpm --versionpm2 statuspm2 monitpm2 logs --lines 100ss -lntpRunning the app as root and exposing database ports publicly creates unnecessary risk.
No. systemd, Docker or another process manager can be used, but restart, logging and startup must be managed.
It can be for a small API; SSR, builds, Redis and databases on the same host may require more.
Not always. With many long-lived connections, memory, file descriptors and network limits can matter as much as CPU.
Share framework, concurrency, PM2 workers, database and traffic; we can size the VPS.