用pgbench使用短连接压测一个postgresql数据库(select 1),其他数据库亦如此。
压测一段时间之后,可能会因为本地(客户端)的端口耗尽,客户端会报错如下
原因是客户端需要为每一个连接动态创建tcp端口,所以每个连接会消耗一个端口。
客户端主动断开连接后,会进入time_wait状态。
详见tcp协议
<a href="https://en.wikipedia.org/wiki/transmission_control_protocol">https://en.wikipedia.org/wiki/transmission_control_protocol</a>

但是time_wait是有时间窗口的,linux默认是60秒。
所以如果不停的产生和关闭tcp会话,就可能导致前面提到的问题。
对于linux的客户端,通过调整几个操作系统内核参数可以解决这个问题。