Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ target/
node_modules/
dist/
dist-test/
bench-results/
perf.data*
*.node
Cargo.lock
Expand Down
7 changes: 7 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ ring = "0.17"
md-5 = "0.10"
sha2 = "0.10"
zeroize = "1"
# `disable_initial_exec_tls`: jemalloc's default TLS model cannot be dlopen()ed, which is how Node
# loads this cdylib.
tikv-jemallocator = { version = "0.6", optional = true, features = ["disable_initial_exec_tls"] }

[features]
# Memory-benchmark arm only (see src/lib.rs); never enabled in published builds.
jemalloc = ["dep:tikv-jemallocator"]

[dev-dependencies]
# `start_paused` runtimes for the liveness timer tests; not compiled into the cdylib.
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -945,6 +945,9 @@ Two caveats when sizing a node from this:
rustls session state per connection, plus kernel socket memory (bounded in aggregate by
`net.ipv4.tcp_mem`). Measure the actual slope — `activeConnections` from the admin endpoint
against process RSS — before deciding a connection target is reachable.
`npm run benchmark:memory-oop` (`__test__/bench-copy-memory-oop.ts`) does this with symphony in
its own process under parked, active, slow-reader and churn load; the other `benchmark*` scripts
host the proxy inside their own load generator, so their RSS is mostly the client's.
- Buffer memory is not what caps connection count. File descriptors (2 per proxied connection,
against `RLIMIT_NOFILE`) and `nf_conntrack_max` bind first; see
[Linux kernel tuning](#linux-kernel-tuning).
Expand Down
Loading
Loading