【内存泄露】记一次内存泄露排查,罪魁祸首是HttpClient
💡
原文中文,约2800字,阅读约需7分钟。
📝
内容提要
很久以前,程序遇到HttpClient内存溢出问题,导致重启。通过分析Dump和句柄、socket,发现问题出在HttpClient的使用上。微软建议HttpClient在应用程序生命周期中只实例化一次并重复使用。将HttpClient实例变为静态成员后,问题解决。
🎯
关键要点
- 程序遇到HttpClient内存溢出问题,导致重启。
- 通过分析Dump和句柄、socket,发现问题出在HttpClient的使用上。
- 程序内存每秒增加200k,最终崩溃重启。
- 分析发现Socket的Close_Wait异常,达到3万个。
- HttpClient应在应用程序生命周期中只实例化一次并重复使用。
- 将HttpClient实例变为静态成员后,问题得到解决。
- 此次排查问题耗费了2天时间,反映了技术人员的成长与变化。
🏷️
标签
➡️