Server
Always-on
Always-on is a server or process that stays running and listening whether or not anyone is sending requests. It trades a fixed monthly bill for an answer that never has to wait for something to boot.
How it is measured
You confirm it by watching the process, not the traffic. Uptime of the process (`uptime`, `systemctl status`, the container's restart count) says how long it has been alive, and an external probe every 60 seconds says whether it still answers. A host that responds at 03:00 with the same latency as at 15:00 is behaving as always-on.
The unit is a state, not a rate: up or down, with a restart count beside it. Platforms that bill per request or scale to zero are the opposite model, so check the plan page for words like 'minimum instances' or 'idle timeout' before assuming a service is always-on.
Worked example
A small WooCommerce shop pays 24 dollars a month for a VPS that runs Nginx, PHP-FPM and MariaDB around the clock. A supplier's webhook arrives at 03:12 with a 5 second timeout, and the order is recorded in 90 ms because every process was already resident.
The same webhook sent to a scale-to-zero function that had been idle for 20 minutes needed 2.4 seconds just to start, and the supplier retried twice. The shop did not need more capacity. It needed something that was already awake at 03:12.
How it differs
Always-on means a process is resident whether or not it has work. Serverless starts compute when a request arrives and may stop it afterwards. Always-on excludes boot delay and costs money while idle. Serverless excludes idle cost and may pay a cold start on the first hit after a quiet spell.
Common errors
Assuming a managed host is always-on when it sleeps free-tier apps after 15 minutes. Reading 'the server is up' as 'the app is up' when the container is alive but the worker crashed. Keeping a cron ping alive as a substitute for sizing the instance properly. Forgetting that always-on still needs restarts after crashes, so it needs a supervisor.
In practice
Check your hosting plan this week for any idle sleep or minimum-instance setting, and run one external probe at an off-peak hour to prove the first request is as quick as the hundredth. If you need always-on only for a webhook endpoint or a payment callback, move just that piece onto a small resident box instead of the whole site.