Skip to main content

Benchmark Methodology & Raw Results

The numbers behind the Resource Calculator are not guesses. They come from a real HiTechCloud install, pushed to real account counts and measured with standard Linux tools. This page documents how the test is run and what came back, so you can check the assumptions yourself.

The per-account figures below were measured on an earlier HiTechCloud release. The current release runs every service (web servers, PHP-FPM, MariaDB, mail, DNS) once on the host and gives each account its own PHP-FPM pool, system user and quota, so it shares more between accounts than the release that was measured. Treat the calculator as a conservative estimate. A re-run on the current release will replace these numbers here.

Test environment

  • VPS: AltusHost VM-4: 8 cores, 9GB RAM
  • Enterprise license, without the premium services enabled (no mail server, no FTP, no DNS)
  • Fresh HiTechCloud install, no prior accounts

How the test is run

  1. Fresh install of HiTechCloud on the VPS above.
  2. Run the automated benchmark suite (hitechcloud-tests max-users), which:
    • Creates hosting accounts one at a time, each on the Standard plan (2 CPU cores / 2GB RAM cap).
    • Enables 5 services per account: MariaDB, Apache, PHP 8.5, Cron, Memcached.
    • Waits for every service in the account to report started before creating the next account, so accounts are never created faster than the server can bring them up.
  3. Leave the server idle for 1 hour after the last account is created (no synthetic traffic).
  4. Measure per-account and system-wide usage with the commands below.

Run it yourself

Any administrator can reproduce this on a test VPS.

Fresh install (see the install command generator for other options):

bash <(curl -sSL https://hitechcloud.org/) --key=enterprise-xxxx

Install the hitechcloud-tests tool (our support team can send you the current build), then run the account-creation benchmark:

hitechcloud-tests max-users

Let the server sit idle for about an hour, then collect usage per account (each account runs in its own systemd slice) and for the whole system:

hitechcloudcli user-list
systemd-cgtop --depth=3 --iterations=1
du -sh /home
free -mh
df -h /
uptime
vmstat 1 5

Disk usage

  • Per additional account: ~100 MB (account files and configuration). Each web server, PHP version and database engine is installed once on the server and shared by every account, so it is counted once, not per account.

RAM usage

Bare/idle account (no services or domain yet): ~15MB RAM.

Account with 5 services running, 1 hour idle, sampled across the test accounts:

user: testhdcw6lom   memory used: 182.8M   cpu: 0.1 cores (pct: 5)
user: test8z2c9li0    memory used: 96.2M    cpu: 0.1 cores (pct: 9)
user: testyldvawbz   memory used: 176.6M   cpu: 0.0 cores (pct: 4)
user: testm420v4mo   memory used: 189.6M   cpu: 0.0 cores (pct: 3)
user: testdk4e6qcb   memory used: 180.8M   cpu: 0.1 cores (pct: 5)
user: testns1hzu92   memory used: 114.2M   cpu: 0.0 cores (pct: 4)
user: test16bl1nh3   memory used: 192.6M   cpu: 0.1 cores (pct: 5)
user: testnpz6ktcj   memory used: 26.3M    cpu: 0.0 cores (pct: 0)
user: testkm20itbn   memory used: 23.9M    cpu: 0.0 cores (pct: 0)
user: test2yv96x7q   memory used: 23.7M    cpu: 0.0 cores (pct: 0)
user: testkwzwlkok   memory used: 24.2M    cpu: 0.0 cores (pct: 0)
user: testybg395dc   memory used: 24.1M    cpu: 0.0 cores (pct: 0)
user: testy02m4ux5   memory used: 74.5M    cpu: 0.0 cores (pct: 4)
user: testh7xjd0gv   memory used: 78.4M    cpu: 0.1 cores (pct: 5)
user: test9xjhqukr   memory used: 89.4M    cpu: 0.1 cores (pct: 6)
user: testrbgigc7e   memory used: 191.6M   cpu: 0.0 cores (pct: 4)
user: testu0xdlajh   memory used: 193.3M   cpu: 0.1 cores (pct: 8)
user: testajuhx8yf   memory used: 193.4M   cpu: 0.0 cores (pct: 4)

That is 18 accounts, ~2.03 GB RAM combined, averaging ~115MB per account. Fresh accounts with no site provisioned yet sat as low as ~24MB; accounts with a site running were closer to ~180-203MB.

Shared system services (database, cache, front end, panel UI, phpMyAdmin combined): with free -mh showing 2.9GB used system-wide against ~2.03GB for the accounts above, roughly ~0.87GB RAM is left for the shared services together. That is why the calculator's system baseline is set low and treated as a floor, not a measured ceiling.

Real CPU usage (system-wide)

vmstat 1 5, sampled ~6 hours after the last account was created, with all 20 accounts idle:

procs -----------memory---------- ---swap-- -----io---- -system-- -------cpu-------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st gu
27  1 1045664 489412 269500 5809848    1   33    85 50498 72510  132 39 42 17  2  0  0
25  1 1045664 497804 269500 5809996    0    0     0 49276 76445 110036 42 43 13  2  0  0
12  0 1045664 499536 269500 5814108    0    0     0 113760 78239 103005 37 41 15  6  0  0
17  1 1045664 455716 269500 5814112    0    0     0 49224 75054 107971 40 45 14  2  0  0
14  2 1045664 472212 269500 5814112    0    0     0 48312 75814 109682 41 43 14  2  0  0

b (processes blocked on I/O) sits at 0-2, so this is not disk contention. r (processes waiting for a CPU) runs 12-27 on an 8-core box, and us+sy average ~82.6% CPU busy, with sy (kernel time) close to us (process time) and 72k-110k context switches per second. Per-account accounting does not include that kernel and scheduling overhead, so the real per-account CPU cost is worked out from system-wide utilization:

busy cores  = (us% + sy%) × 8 cores       = 0.826 × 8   ≈ 6.6 cores
per user    = (busy cores − system baseline) ÷ 20 users
            = (6.6 − 1.5) ÷ 20             ≈ 0.25 cores/user

~0.25 cores per account is what the calculator uses for its idle CPU estimate.

Scale test

  • 15 accounts × 5 services: ran with zero issues on the 8-core/9GB VPS.
  • 20 accounts × 5 services, all on the Standard plan (2 CPU / 2GB RAM cap each): 40 cores / 40GB RAM of plan allowances oversold on an 8-core/9GB box.
  • uptime load average stayed at 13.48-24.45 for hours, including a re-check nearly 6 hours after account creation finished, consistent with the ~6.6 busy cores measured above.
  • free -mh at 20 accounts: 2.9GiB used / 8.7GiB total, 454MB free, 5.8GiB in buff/cache.
  • df -h: 22GB used / 99GB total (24%).