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
- Fresh install of HiTechCloud on the VPS above.
- 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.
- Leave the server idle for 1 hour after the last account is created (no synthetic traffic).
- 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.
uptimeload 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 -mhat 20 accounts: 2.9GiB used / 8.7GiB total, 454MB free, 5.8GiB in buff/cache.df -h: 22GB used / 99GB total (24%).