我遇到了一个高流量的应用,偶尔会出现我尝试诊断的各种缩放超时问题。该应用程序在SQL连接字符串中具有以下设置:
Min Pool Size=5;Max Pool Size=100;Connect Timeout=8;Connection Lifetime=30;
这当然意味着游泳池中至少有5个连接,PerfMon确认。
但如果我理解正确的Microsoft文档,连接生命周期设置将会破坏已存在超过30秒的已关闭连接:
当连接返回到池时,其创建时间为 与当前时间相比,如果连接被破坏 该时间跨度(以秒为单位)超过Connection指定的值 寿命。
由于这5个(或更多)连接经常被使用,我是否正确地认为它们中的任何一个都不会超过30秒?因此,每半分钟左右,我的应用程序将一直回到SQL来握手5个以上的全新连接?
PerfMon建议连接数量从不低于5,因此我没有证据表明上述情况发生(除非它在视觉上是即时的)。我误解了吗?
此外,this ancient article确认只对Close()执行生命周期检查,因此此设置在解决任何连接泄漏时都会有无优势?