Closed tobz closed 3 weeks ago
Run ID: 691d34a5-7617-4c2f-b6fc-8102efb46850
Baseline: 7.52.0 Comparison: 7.52.1
Performance changes are noted in the perf column of each table:
Confidence level: 90.00% Effect size tolerance: |Δ mean %| ≥ 5.00%
There were no significant changes in experiment optimization goals at this confidence level and effect size tolerance.
Run ID: 588bb15a-0e4d-44e9-88cf-ff188cae4f4e
Baseline: 73efdc152b0619ab48c6a0c60e21718438083f93 Comparison: e580118fb34b73f18dcc5a5d5141c233c96bf9c6
Performance changes are noted in the perf column of each table:
Confidence level: 90.00% Effect size tolerance: |Δ mean %| ≥ 5.00%
There were no significant changes in experiment optimization goals at this confidence level and effect size tolerance.
experiment | link(s) |
---|---|
dsd_uds_100mb_250k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_100mb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_100mb_3k_contexts_distributions_only | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_10mb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_1mb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_1mb_50k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_1mb_50k_contexts_memlimit | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_500mb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_512kb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_50mb_10k_contexts_no_inlining (ADP only) | [Profiling (ADP)] [SMP Dashboard] |
dsd_uds_50mb_10k_contexts_no_inlining_no_allocs (ADP only) | [Profiling (ADP)] [SMP Dashboard] |
Context
In #196, we detailed how some of the configuration defaults for TLS can be suboptimal in terms of memory usage. This manifested itself as not only inefficient memory usage (duplication) but also misattributed memory usage, leading to certain components having to bear the usage burden because they happened to be spawned in a specific order that led to them being the first to initialize an HTTP client, and so on.
Solution
This PR introduces a small overhaul of how we centralize both TLS initialization as well as configuration. We're doing a few things here:
saluki-tls
, where all of this stuff now lives and can be depended on from various crates (saluki-app
,saluki-io
, etc)ClientTLSConfigBuilder
, for creating aClientConfig
with saner defaults (smaller resumption cache, utilizes a shared root cert store, etc)Overall, this tightens up our TLS usage by pushing users through a more opinionated configuration pathway while also giving us a place to expose more tunables as necessary, while still being able to validate that the resulting configuration is FIPS compliant. As well, and to the point of the original issue, this also not only reduces some duplicate allocations and memory usage, but now ensures that those allocations are properly attributed to the root allocation group as shared data, which improves the numbers for individual components in the topology.
Fixes #182. Fixes #196.