Skip to content

ClickHouse Cloud elasticity: compute against rows written, four pairs - #75

Merged
talwgx merged 2 commits into
mainfrom
bench/clickhouse-cloud-elasticity
Nov 5, 2026
Merged

talwgx merged 2 commits into
mainfrom
bench/clickhouse-cloud-elasticity

Conversation

@talwgx

@talwgx talwgx commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

How far does a ClickHouse Cloud service's compute fall when the rows written into its logs table fall, above the smallest size, and how long does the autoscaler take? The setup was one Scale-tier service in AWS us-east-1 running ClickHouse 26.6 with 2 replicas, vertical autoscaling from 8 to 32 GiB per replica, and the ClickStack otel_logs schema under seven queries a minute. Two arms differ only in the rows written:

  • Arm A writes every record of the 215 MB OTel replay at 70,000 rows/s.
  • Arm B writes the 65.3% the Receiver (log10x/edge-10x:1.1.153) kept, at 45,716 rows/s.

The run lasted from 2026-11-02 19:48 to 2026-11-05 03:47 UTC. Every figure is in clickhouse-cloud-elasticity/RESULT.md with the file and field it was read from.

Result

The same cut gave a step down or no change, depending on the size the service started from.

Pair Arm A's size Units, A to B Ratio computeCHC per 15 min, A to B Cut to step down done
1 the autoscaler's 4.0 to 2.997 0.749 0.298 to 0.224 4.33 h
2 the autoscaler's, where pair 1 left it 3.0 to 3.0 1.0 0.224 to 0.224 no step in 10.25 h
3 16 GiB by config, released at the cut 4.0 to 3.0 0.750 0.298 to 0.224 4.21 h
4 16 GiB by config, released at the cut 4.0 to 3.0 0.750 0.298 to 0.224 2.91 h
  • Path dependence. At 4 units, arm B's busiest replica reads 0.337 to 0.351 of its CPU, below the autoscaler's 37.5% low watermark. At 3 units both arms sit inside the 37.5% to 75% band, where the autoscaler takes no action.
  • Dollars. usageCost computeCHC reads $1.196/h against $0.896/h (ratio 0.749). Unit-hours × $0.2985, the published Scale compute rate per unit-hour in AWS us-east-1 (clickhouse.com/pricing, read 2026-11-05, results/raw/pricing-quotes.md), reads $1.194/h against $0.8955/h (ratio 0.750). The postings match the rate: a quarter-hour is 0.2985 at 4 units and 0.2239 at 3.
  • Elasticity. The fall in compute over the fall in rows is 0.721 to 0.723 in pairs 1, 3 and 4.
  • Scale-down lag. From the cut to the step down being done took 4.33, 4.21 and 2.91 h. The new replicas booted 4.20, 4.07 and 2.78 h after the cut.
  • Write share W. (insert + merge) / (insert + merge + select) cores reads 0.65 to 0.67 as the mean over replicas. On the busiest replica it reads 0.47 to 0.51 in arm A and 0.54 to 0.55 in arm B.
  • Memory. About 2 GiB used per replica, of 12 to 16 GiB.
  • Floor. 2 units, $0.60/h.

Not shown

  • A production query mix.
  • The collector path live: the feed was pre-split.
  • More than one region, schema or service shape.

Not measured, each reported as read in RESULT.md:

  • the wire parse of real inserts
  • the probe's steady-state select share
  • which replica the recommender reads
  • why pair 4 stepped 1.3 h sooner

Credit and teardown

  • Spent. $42.61 of the $300 credit, against the run's $200 cap (creditBalances amountSpent, unchanged from 11-05 04:25Z to 05:35Z).
  • chce-elasticity's own usageCost. totalCHC 41.714, of which computeCHC 41.680.
  • Deleted. chce-elasticity was stopped at 03:44:15Z and deleted at 03:46:57Z. A GET then returned 404 (results/raw/teardown.jsonl).
  • Kept. "My first service" was not deleted.

Committed files carry the runner's address only as <runner-ip> and no key or password.

Not merged; for Tal.

🤖 Generated with Claude Code

talwgx and others added 2 commits November 5, 2026 00:41
…se Cloud, four pairs

One Scale-tier service in AWS us-east-1, the ClickStack otel_logs schema under seven
queries a minute, two arms that differ only in the rows written: all of the 215 MB
OTel replay at 70,000 rows/s, or the 65.3% the Receiver kept at 45,716 rows/s.

From a 4-unit start the cut took the service from 4 units to 3 (0.749 to 0.750) and
billed compute to 0.749, in pairs 1, 3 and 4; the step down was done 2.91 to 4.33 h
after the cut. From a 3-unit start (pair 2) it read no change in 10.25 h. Write share
0.65 to 0.67, about 2 GiB used per replica, floor 2 units. $42.61 of the credit spent;
the service was deleted at the end.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rate, $0.2985

clickhouse.com/pricing publishes Scale compute at $0.2985 per unit-hour for AWS
N. Virginia (us-east-1), one unit being 8 GiB and 2 vCPUs; quoted in
results/raw/pricing-quotes.md and now the arms_report.py default. Every
unit-hours x rate figure is recomputed at it; the usageCost postings stay the
primary dollar figure and match the rate (0.2985 a quarter-hour at 4 units,
0.2239 at 3).

The B4-after-the-step row now reads the committed report (2.86 unit-hours,
mean 0.348, top replica 1.838 GiB); it had been taken from a read made before
the meter's last minutes landed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@talwgx
talwgx merged commit 5170cd6 into main Nov 5, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant