You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have had memory problems in dnscrypt server-docker images.
Memory usage is growing rapidly.
Come across this: tikv/rust-prometheus#424
Could prometheus v0.13.0 be the problem?
Compiled encrypted-dns with prometheus v0.12.0 and it looks like memory problem is gone.
This was done on a singleboard computer arm32v7 with 2Gbyte of LPDDR3 RAM.
The weird thing is that one device works with prometheus v0.12.0 and another does not (release 0.9.1), but both devices work well with encrypted-dns release 0.3.23 and arm32v7/ubuntu:22.04
Build dnscrypt-server-docker, FROM arm32v7/ubuntu:22.04
I have tried with tikv-jemallocator. Compiled fine and without memory problem, but unfortunately no response from encrypted-dns. Only gets TIMEOUT on server in dnscrypt proxy.
tikv-jemallocator supports arm32v7 ?
Update.
Has compiled with the latest version of tikv-jemallocator (0.5.0), which was released today and server works excellent. tikv/jemallocator#26
This issue has been resolved. Thank you so much
Activity
Haraade commentedon May 21, 2022
Do not know what does this, tried on another arm32v7 board. CPU (1-core of 4) usage also goes up to 100%
jedisct1 commentedon May 21, 2022
Can you double check that the issue goes away when downgrading the prometheus crate to v0.12.0?
How did you do that?
Haraade commentedon May 21, 2022
The weird thing is that one device works with prometheus v0.12.0 and another does not (release 0.9.1), but both devices work well with encrypted-dns release 0.3.23 and arm32v7/ubuntu:22.04
Build dnscrypt-server-docker, FROM arm32v7/ubuntu:22.04
Haraade commentedon May 21, 2022
I have also tried prometheus v0.13.1, but there are also issues.
tikv/rust-prometheus#442
jedisct1 commentedon May 21, 2022
Does it still happen if you don't enable the
metricsfeature? (disabling it removes prometheus)Haraade commentedon May 21, 2022
I have to try.
Haraade commentedon May 22, 2022
disabled metrics in encrypted-dns.toml.in and -M option when initializing the docker image.
Memory and CPU usage are growing, and are running in loop.
jedisct1 commentedon May 22, 2022
Ok, so at least we know that this is unrelated to Prometheus.
In case this is not in a dependency, would you be able to pinpoint a specific commit that introduced this?
Haraade commentedon May 22, 2022
Version 0.3.23 works.
cargo install --git https://github.com/DNSCrypt/encrypted-dns-server --rev 631ebd4
Version 0.9.0 does not work.
cargo install --git https://github.com/DNSCrypt/encrypted-dns-server --rev a178d25
So there must be something between these versions.
Will probably have to test more to find the specific commit that introduced this.
Haraade commentedon May 24, 2022
I think this problem is due to jemallocator.
See what was mentioned earlier.
jemalloc/jemalloc#1497
gnzlbg/jemallocator#168
rust-lang/rust#83152
I have tried with tikv-jemallocator. Compiled fine and without memory problem, but unfortunately no response from encrypted-dns. Only gets TIMEOUT on server in dnscrypt proxy.
tikv-jemallocator supports arm32v7 ?
jedisct1 commentedon May 24, 2022
So, like way too many Rust crates, jemalloc is abandoned, and the maintained fork doesn't work on ARM? Great :(
As an experiment, 748b944 replaces
jemallocwithmimalloc. Does in improve things on your end?jedisct1 commentedon May 24, 2022
The app doesn't seem to compile at all on armv7 :(
Haraade commentedon May 24, 2022
tikv/rust-prometheus#442
I use prometheus v0.12.0
Trying mimalloc.
jedisct1 commentedon May 24, 2022
After removing prometheus'
processfeature, it works for me on armv7l (raspberry Pi with 32-bit raspbian).Haraade commentedon May 25, 2022
Update.
Has compiled with the latest version of tikv-jemallocator (0.5.0), which was released today and server works excellent.
tikv/jemallocator#26
This issue has been resolved. Thank you so much