本文共 392 字,大约阅读时间需要 1 分钟。
MySQL 5.5环境下,使用Connector/Net 6.8.3.0时,发现连接异常会导致内存与句柄泄露。在进行测试时,观察到任务管理器中句柄数持续增长。通过ProcessXp分析发现,进程占用了大量未正常关闭的TCP连接,处于CLOSE_WAIT状态。进一步查看netstat -ano | findstr "3306"输出,发现mysqld.exe(PID: 1900)有大量处于FIN_WAIT_2状态的连接。这表明虽然服务器端主动断开连接,但客户端未能正确关闭TCP连接导致的问题。
经过进一步调试和分析,发现执行GC.Collect()后,句柄泄露问题得以解决。此问题在换用SqlServer时未出现,初步怀疑可能与MySQL Connector/Net的实现细节或环境配置有关。建议进一步研究Connector的源码,以确定具体原因。如有高手熟悉此问题,欢迎留言交流。
转载地址:http://zqffk.baihongyu.com/