【内存泄露】记一次内存泄露排查,罪魁祸首是HttpClient

💡 原文中文,约2800字,阅读约需7分钟。
📝

内容提要

很久以前,程序遇到HttpClient内存溢出问题,导致重启。通过分析Dump和句柄、socket,发现问题出在HttpClient的使用上。微软建议HttpClient在应用程序生命周期中只实例化一次并重复使用。将HttpClient实例变为静态成员后,问题解决。

🎯

关键要点

  • 程序遇到HttpClient内存溢出问题,导致重启。
  • 通过分析Dump和句柄、socket,发现问题出在HttpClient的使用上。
  • 程序内存每秒增加200k,最终崩溃重启。
  • 分析发现Socket的Close_Wait异常,达到3万个。
  • HttpClient应在应用程序生命周期中只实例化一次并重复使用。
  • 将HttpClient实例变为静态成员后,问题得到解决。
  • 此次排查问题耗费了2天时间,反映了技术人员的成长与变化。
🏷️

标签

➡️

继续阅读