axum内存泄漏问题,更换内存分配器的后续测试

💡 原文中文,约2300字,阅读约需6分钟。
📝

内容提要

axum/hyper存在内存泄漏问题,使用MiMalloc内存分配器可以降低泄漏可能性。测试结果显示MiMalloc和JeMalloc释放内存更好,但MiMalloc性能更佳。根据测试,axum的内存不会无限增加,可以选择不更换内存分配器。MiMalloc和JeMalloc是优化内存分配的可选项。

🎯

关键要点

  • axum/hyper存在内存泄漏问题,使用MiMalloc内存分配器可以降低泄漏可能性。

  • 测试显示MiMalloc和JeMalloc释放内存更好,但MiMalloc性能更佳。

  • axum的内存不会无限增加,可以选择不更换内存分配器。

  • 测试环境为ubuntu 24.04,使用最新rust版本,进行多种内存分配模式的性能测试。

  • 在高并发情况下,MiMalloc的内存占用相对较低,其他分配器内存占用较高。

  • 内存问题成因推测与请求并发数有关,内存无法正确回收。

  • 测试中发现CPU爆表和端口拥堵会影响客户端性能。

  • 结论是axum即使存在内存分配问题,但内存不会无限增加,MiMalloc和JeMalloc是优化选项。

延伸问答

axum/hyper的内存泄漏问题是什么原因造成的?

内存问题的成因推测与请求并发数有关,内存无法正确回收。

使用MiMalloc内存分配器有什么优势?

MiMalloc在内存释放方面表现更好,且在高并发情况下内存占用相对较低。

测试中发现的内存占用情况如何?

在1000qps和10000qps的测试中,MiMalloc的内存占用分别为35M和350M,而其他分配器则更高。

JeMalloc和MiMalloc的性能比较如何?

MiMalloc在内存释放表现上更好,而JeMalloc在兼顾内存释放的同时,CPU占用率表现更佳。

axum是否需要更换内存分配器?

根据测试,axum的内存不会无限增加,可以选择不更换内存分配器。

测试环境的配置是什么?

测试环境为ubuntu 24.04,使用最新rust版本,配置为2.6Ghz 8C 8G。

🏷️

标签

➡️

继续阅读