如何在生产环境排查 Rust 内存占用过高问题
📄 文|魏熙凯(蚂蚁集团技术专家) 本文 6320 字 阅读 10 分钟 ▼ 内存安全的 Rust,虽然基本不会出现内存泄漏,但如何合理分配内存,是每个复杂应用都要面临的问题。往往随着业务的不同,相同的代码可能会产生不同的内存占用。因此,有不小的概率会出现内存使用过多、内存逐渐增长不释放的问题。 本文我想分享一下,我们在实践过程中遇到的关于内存占用过高的问题。对于这些内存问题,在本文中会做出简单的分类,以及提供我们在生产环境下进行排查定位的方法给大家参考。 本文最先发表于 RustMagazine 中文月刊 (https://rustmagazine.github.io/rust_magazine_2021/chapter_5/rust-memory-troubleshootting.html) 内存分配器 首先在生产环境中,我们往往不会选择默认的内存分配器(malloc),而是会选择 jemalloc,可以提供更好的多核性能以及更好的避免内存碎片(详细原因可以参考[1])。Rust 的生态中,对于 jemalloc 的封装有很多优秀的库,这里我们就不纠结于哪一个库更好,我们更关心如...