From e0f8cc8e1f1388ff1e1cdd912dbf5044e70fefc1 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 27 Aug 2021 00:51:25 +0000 Subject: [PATCH 1/2] Use jemalloc --- Cargo.lock | 47 +++++++++++++++++++++++--------------- linkerd2-proxy/Cargo.toml | 2 +- linkerd2-proxy/src/main.rs | 3 +-- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2aefbe0854..a5ed0dd0fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -226,6 +226,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" + [[package]] name = "futures" version = "0.3.17" @@ -549,6 +555,27 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" +[[package]] +name = "jemalloc-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d3b9f3f5c9b31aa0f5ed3260385ac205db665baa41d49bb8338008ae94ede45" +dependencies = [ + "cc", + "fs_extra", + "libc", +] + +[[package]] +name = "jemallocator" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43ae63fcfc45e99ab3d1b29a46782ad679e98436c3169d15a167a1108a724b69" +dependencies = [ + "jemalloc-sys", + "libc", +] + [[package]] name = "js-sys" version = "0.3.55" @@ -581,15 +608,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "libmimalloc-sys" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1b8479c593dba88c2741fc50b92e13dbabbbe0bd504d979f244ccc1a5b1c01" -dependencies = [ - "cc", -] - [[package]] name = "linked-hash-map" version = "0.5.4" @@ -1469,9 +1487,9 @@ name = "linkerd2-proxy" version = "0.1.0" dependencies = [ "futures", + "jemallocator", "linkerd-app", "linkerd-signal", - "mimalloc", "num_cpus", "tokio", "tracing", @@ -1548,15 +1566,6 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" -[[package]] -name = "mimalloc" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb74897ce508e6c49156fd1476fc5922cbc6e75183c65e399c765a09122e5130" -dependencies = [ - "libmimalloc-sys", -] - [[package]] name = "miniz_oxide" version = "0.4.4" diff --git a/linkerd2-proxy/Cargo.toml b/linkerd2-proxy/Cargo.toml index b34d390403..c8e8105abf 100644 --- a/linkerd2-proxy/Cargo.toml +++ b/linkerd2-proxy/Cargo.toml @@ -13,7 +13,7 @@ multicore = ["tokio/rt-multi-thread", "num_cpus"] [dependencies] futures = { version = "0.3", default-features = false } -mimalloc = { version = "0.1.26", optional = true } +jemallocator = { version = "0.3" } num_cpus = { version = "1", optional = true } linkerd-app = { path = "../linkerd/app" } linkerd-signal = { path = "../linkerd/signal" } diff --git a/linkerd2-proxy/src/main.rs b/linkerd2-proxy/src/main.rs index f90bb3b1e1..5a085ff56a 100644 --- a/linkerd2-proxy/src/main.rs +++ b/linkerd2-proxy/src/main.rs @@ -9,9 +9,8 @@ use linkerd_signal as signal; use tokio::sync::mpsc; pub use tracing::{debug, error, info, warn}; -#[cfg(feature = "mimalloc")] #[global_allocator] -static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; +static GLOBAL: jemallocator::Jemalloc = jemallocator::Jemalloc; mod rt; From 2649240853a82e4f2d18af19ab1e399a2a2f4184 Mon Sep 17 00:00:00 2001 From: Oliver Gould Date: Fri, 22 Oct 2021 01:23:03 +0000 Subject: [PATCH 2/2] Only use jemalloc on x86_64 gnu/linux --- linkerd2-proxy/Cargo.toml | 4 +++- linkerd2-proxy/src/main.rs | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/linkerd2-proxy/Cargo.toml b/linkerd2-proxy/Cargo.toml index c8e8105abf..ed0e3ddeb2 100644 --- a/linkerd2-proxy/Cargo.toml +++ b/linkerd2-proxy/Cargo.toml @@ -13,9 +13,11 @@ multicore = ["tokio/rt-multi-thread", "num_cpus"] [dependencies] futures = { version = "0.3", default-features = false } -jemallocator = { version = "0.3" } num_cpus = { version = "1", optional = true } linkerd-app = { path = "../linkerd/app" } linkerd-signal = { path = "../linkerd/signal" } tokio = { version = "1", features = ["rt", "time", "net"] } tracing = "0.1.29" + +[target.x86_64-unknown-linux-gnu.dependencies] +jemallocator = { version = "0.3" } diff --git a/linkerd2-proxy/src/main.rs b/linkerd2-proxy/src/main.rs index 5a085ff56a..cdabd28cd8 100644 --- a/linkerd2-proxy/src/main.rs +++ b/linkerd2-proxy/src/main.rs @@ -9,6 +9,7 @@ use linkerd_signal as signal; use tokio::sync::mpsc; pub use tracing::{debug, error, info, warn}; +#[cfg(all(target_os = "linux", target_arch = "x86_64", target_env = "gnu"))] #[global_allocator] static GLOBAL: jemallocator::Jemalloc = jemallocator::Jemalloc;