Skip to main content

Choosing your server

We loaded a live instance with a real funnel and measured everything. The result: even on the most modest VPS at ~$20/month (4 vCPU / 8 GB), Qubix serves ~1,900 landing views per second — that's tens of millions of visits a month — each in ~25 ms and with zero errors under load. The whole service fits in ~1.3 GB of RAM, doesn't leak memory and is built for 24/7 operation.

And that's not the ceiling: on 12 cores it's already ~6,800 views per second — throughput grows linearly with the number of cores.

Below: which server to pick for your traffic, and the full test results behind these numbers.

Which server to pick

Your traffic (approx.)ServerThroughput
up to ~5M visits/day (peaks up to ~1,000/s)4 vCPU / 8 GB (~$20/mo)~1,900 views/s — measured, landing in ~25 ms
~5–15M/day (peaks ~1,000–3,000/s)8 vCPU / 16 GB~4,000 views/s — estimated (~500 per core)
15M+/day (peaks 5,000+/s)12 vCPU / 16 GB~6,800 views/s — measured

Simple rule: cores ≈ peak visits per second ÷ 500. 8 GB of RAM is enough for the recommended setup, 16 GB with headroom.

How much it handles — and how we measured it

Test conditions:

  • Server under test: a DigitalOcean cloud VPS — 4 vCPU / 8 GB, SSD, Debian 13 (kernel 6.12), Frankfurt region. An ordinary, un-beefed-up machine for ~$20/month.
  • Load generator: a separate server (12 cores) — so the instance spends its resources only on its own work, not on the test itself. Tool — bombardier (HTTP with keep-alive), ramping from 50 to 1000 concurrent connections, 15–30 seconds per run.
  • What we loaded: a live configured funnel — a real domain serving a cloaked landing (~45 KB) with a working cloaking decision, plus conversion postbacks.
  • What we watched: CPU, memory, swap and latency — in real time throughout.
  • For scaling we ran the same test on a 12 vCPU / 64 GB server.

Recommended server, 4 vCPU / 8 GB:

Request typeHandlesLatencyErrors
Full landing (cloaked, ~45 KB)~1,900/s~25 ms (even at 250 concurrent — 0.13 s)0
Conversion postback~13,000/s~25 ms0
Lightweight request~16,000/s~20 ms0

Not a single error up to 1000 concurrent connections. Under overload the instance doesn't crash or drop requests — only latency grows (from ~25 ms to 0.13–0.26 s when load far exceeds the rating), and as soon as the peak subsides the response returns to normal.

What limits it at peak. All 4 cores run at 95–100% — the limit is the CPU, which is why capacity scales with cores. Memory stayed calm: about 1.1–1.3 GB under load, no swap, over 3.8 GB always free.

Memory doesn't leak. We separately ran four load cycles in a row with pauses and watched memory: at idle the service used about 0.7 GB, under peak load it rose to roughly 1.2 GB, and in the pauses it returned to ~0.8 GB — with no build-up from cycle to cycle. The instance is fit for continuous 24/7 operation.

Scaling by cores. The same test on a 12 vCPU server:

ServerFull landingLightweight request
4 vCPU~1,900/s~16,000/s
12 vCPU~6,800/s~80,000/s

Throughput grows in proportion to the number of cores — about 500 landing views per second per vCPU (measured: 475 to 567). Hence the core-sizing rule above.

With Cloudflare — even faster, and free

Put Cloudflare in front — it's free, and Qubix sets it all up

Qubix serves any domain through Cloudflare — a global network of servers — and takes DNS and SSL off your hands. Faster loading is on by default (manage it under Settings → Cloudflare): your site's static files (scripts, styles, icons and screenshots) are served to the visitor from the nearest Cloudflare server.

  • Much faster for the visitor — page files come from the nearest Cloudflare server, not from your server on the other side of the world. Landings open almost instantly worldwide.
  • Tens of times less load on your server — each page pulls dozens of static files (scripts, styles, icons, screenshots), and Cloudflare serves them from its servers. Your server handles only the dynamic part — on the same hardware you serve tens of times more visitors.
  • Free — both the Cloudflare network and caching cost nothing, and Qubix sets it all up for you.

The dynamic part — the cloaking decision and the landing itself — still runs on your server (that's exactly what the numbers above measure); Cloudflare takes care of everything around it. More in Domains.

How much disk you need

At full tilt — screen recording of every visit, all your stats and the funnel, plus your creative library — 20 GB handles around 300,000 visits a month, and holds for years: recordings older than a year are deleted automatically, and traffic history adds only ~0.5 GB a year. The real disk consumer is your creatives (kept permanently): the bigger the library, the more space you need. Even here Qubix saves space — it never stores the same creative twice (the dedup catches even slightly altered copies), and it also powers your stats (one creative across hundreds of ads counts as one, with a combined ROAS). 20 GB is about 2,500 videos or 30,000 images; load a lot more (a million creatives is already terabytes) and you take a proportionally bigger disk — which you can grow at any time.

SSD or HDD — you can save here. Pages open for visitors equally fast on any disk, so feel free to take a cheaper HDD server. The difference with SSD shows only inside the admin panel and only at large volumes: reports read history from disk and build a little slower on HDD — it does not affect how fast landings open for visitors.

What's next