在高负载服务器被"连接池已用完,阻止MaxPoolSize或超时"阻止

Vla*_*lad 5 c# postgresql nhibernate connection-pooling npgsql

我将NHibernate与Npgsql 3.1.5.0一起使用,当高负载测试时,有时服务器完全被此异常阻止. 主题

降级到postgresql 9.4.4后,它会在更高的负载下发生,但仍然可以重现.

我还重新检查了所有NHibernate会话和事务是否正确处理,因此我没有打开任何连接.

一段时间后,我打开了0个会话,仍然"连接池已经用尽".奇怪的是,我无法在我的开发机器上重现它(仅限于生产 - Windows Server 2008 R2).

pgAdmin - 服务器状态实际上显示那些无效的140个连接(和20个额外)(query = commit或empty,state = idle).

什么可以导致它?