Disclosure: this page contains affiliate links. If you buy through them we may earn a commission at no extra cost to you.
Persistent connections change the math
WebSocket apps hold connections open for minutes or hours, so RAM and file-descriptor limits matter more than raw CPU. A chat app or live dashboard runs fine on a 2GB VPS.
What to check
- RAM — each connection holds some state in memory
- High ulimit so the OS allows thousands of open sockets
- Full root access to raise kernel limits
- A reverse proxy like Nginx or Caddy in front of your app
Raise your limits first
ulimit -n 65535
Persist the setting in /etc/security/limits.conf, then run your Node.js or Go server behind a proxy with proxy_read_timeout disabled. An unmanaged KVM VPS is the cheapest way to host real-time apps without connection-count ceilings.