bgp: jemalloc's background thread on Linux only
The last change built jemalloc with its background thread on, so that freed pages go back to the kernel on time. jemalloc has that thread on Linux only: on macOS every start of the daemon, and every test that starts one, printed "option background_thread currently supports pthread only". The feature now comes from a Linux-only dependency entry of the daemon crate, so the macOS build asks for nothing jemalloc cannot do. The Linux build is as before: measured in the VM with four peers and a collector, resident memory falls after the load without any setting in the environment. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
9276bc9f7a
commit
ce1b68ca59
2 files changed
+7
-1
No files matched your search
+1
-1
@@ -65,7 +65,7 @@ tokio-stream = { version = "0.1.19", features = ["sync"] }
|
|||||||
reqwest = { version = "0.13.5", default-features = false, features = ["json"] }
|
reqwest = { version = "0.13.5", default-features = false, features = ["json"] }
|
||||||
# The daemon's memory allocator; see bin/bgp/src/main.rs. With its
|
# The daemon's memory allocator; see bin/bgp/src/main.rs. With its
|
||||||
# statistics, which the status page and the metrics show.
|
# statistics, which the status page and the metrics show.
|
||||||
tikv-jemallocator = { version = "0.7.0", features = ["stats", "background_threads"] }
|
tikv-jemallocator = { version = "0.7.0", features = ["stats"] }
|
||||||
tikv-jemalloc-ctl = { version = "0.7.0", features = ["stats"] }
|
tikv-jemalloc-ctl = { version = "0.7.0", features = ["stats"] }
|
||||||
|
|
||||||
# `cargo build --profile profiling`: the release build, with the line tables
|
# `cargo build --profile profiling`: the release build, with the line tables
|
||||||
|
|||||||
@@ -23,6 +23,12 @@ tracing-subscriber.workspace = true
|
|||||||
[target.'cfg(not(target_env = "msvc"))'.dependencies]
|
[target.'cfg(not(target_env = "msvc"))'.dependencies]
|
||||||
tikv-jemallocator.workspace = true
|
tikv-jemallocator.workspace = true
|
||||||
|
|
||||||
|
# jemalloc's background thread returns freed memory to the kernel on time
|
||||||
|
# (see the memory figures on the status page); jemalloc has it on Linux
|
||||||
|
# only, and warns at every start elsewhere if asked for it.
|
||||||
|
[target.'cfg(target_os = "linux")'.dependencies]
|
||||||
|
tikv-jemallocator = { workspace = true, features = ["background_threads"] }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
# jemalloc's heap profiler, for scripts/profile/full-table.sh with
|
# jemalloc's heap profiler, for scripts/profile/full-table.sh with
|
||||||
# HEAP=1: not for a production build, where it costs memory and time.
|
# HEAP=1: not for a production build, where it costs memory and time.
|
||||||
|
|||||||
Reference in new issue
Block a user