{{ guidanceHeadline }}
{{ guidanceSummary }}
Operational checks
- {{ item }}
This model isolates server-side TLS handshake CPU. Validate it against new-session rate, resumption hits, handshake latency, and worker CPU on the actual termination tier.
{{ summaryLine }}
{{ primaryCopyAnnouncement }}
{{ guidanceSummary }}
This model isolates server-side TLS handshake CPU. Validate it against new-session rate, resumption hits, handshake latency, and worker CPU on the actual termination tier.
| Measure | Value | Decision use | Copy |
|---|---|---|---|
| {{ row.label }} | {{ row.display }} | {{ row.detail }} |
HTTPS request rate is not TLS handshake rate. A client can send many requests over one established connection, especially with keep-alive, pooling, or HTTP/2 multiplexing. CPU pressure rises when more requests arrive on fresh connections, so a reconnect storm can be harder on a TLS termination tier than a larger volume of reused traffic.
Every new secure connection performs a handshake before ordinary application data flows. A full handshake carries the heavier authentication and key-establishment work. A resumed handshake uses previously established session material when both sides accept it, usually reducing the cryptographic work. Mutual TLS, certificate chains, key types, protocol versions, and library behavior can change those costs.
Capacity planning needs a sustained CPU target below the physical core count. Leaving headroom helps absorb scheduler delays, latency variation, certificate work, cache misses, deploy churn, and failover bursts. An optional reserve reduces the usable target further instead of pretending every assigned core is continuously available for handshake work.
Generic handshake costs are useful only for an early screen. The meaningful inputs come from the actual proxy build, cipher and certificate mix, CPU generation, session-resumption behavior, and traffic path. Benchmark full and resumed connections separately, then compare the modeled result with observed CPU and handshake latency under a representative peak.
Model one TLS termination tier at a time so request rate, connection behavior, CPU cost, and assigned cores describe the same boundary.
Target utilization compares modeled handshake demand with the effective CPU budget after the sustained target and reserve are applied. It is not total host CPU utilization. Other proxy work, application processing, kernel overhead, and unrelated workloads remain outside this model.
The model first applies the peak multiplier, then sends only the new-connection share through TLS setup. That handshake rate is divided into full and resumed paths. Each path converts handshakes per second and CPU milliseconds per handshake into busy cores.
Peak requests and new TLS handshakes are:
The full and resumed rates partition H. Dividing CPU milliseconds per second by 1,000 converts the two paths into core demand.
Effective target cores apply both the sustained CPU target and the reserve. Required assigned cores reverse those reductions.
Capacity and reuse labels use explicit inclusive boundaries.
| Status | Exact rule | Planning meaning |
|---|---|---|
| No CPU budget | Effective target cores ≤ 0 | No capacity comparison is available. |
| Within target | Target utilization < 85% | Modeled demand is below the warning boundary. |
| Headroom tight | Target utilization ≥ 85% and < 110% | Validate reconnect peaks before relying on the remaining margin. |
| Over target | Target utilization ≥ 110% | Modeled handshake demand exceeds the capacity target. |
| Reuse healthy | New connections ≤ 5% and full handshakes ≤ 25% | Both connection reuse and resumption are favorable. |
| Reuse risk | New connections ≥ 25% or full handshakes ≥ 60% | Fresh or full handshakes form a large share of traffic. |
| Reuse mixed | All other valid combinations | Inspect timeouts, pools, tickets, and cache hit rate. |
The model accepts nonnegative request rate and handshake costs, 0% to 100% connection and full-handshake shares, 1% to 100% planning CPU target, 0% to 90% reserve, and a nonnegative peak multiplier. Intermediate values are not rounded; displays use practical decimal formatting.
This is a CPU-budget estimate for handshake work, not a complete TLS or server capacity model.
A steady 10,000 requests/s with a 1.5× peak becomes 15,000 requests/s. At 25% new connections, that is 3,750 handshakes/s; a 60% full share splits them into 2,250 full and 1,500 resumed handshakes. With costs of 3.2 ms and 0.35 ms, demand is 7.725 cores. Eight assigned cores at a 65% target and 10% reserve provide 4.68 effective cores, so utilization reaches about 165.1% and the estimated requirement is 13.21 assigned cores.