之前,我们的pgbouncer监视工具在尝试解析pgbouncer的show stats报告时开始报告错误。它抱怨 total_wait_time 太高而无法将其解析为整数!好的,这是明确的信息。但是,什么导致这个数字增长呢?真的很奇怪,它是如何成长的。连续几个度量值之间的total_wait_time差值保持稳定(很少的帐篷或数百个帐篷),然后突然增长几百亿(!),然后再次保持较低,如图所示:
当前,我们在会话池模式下使用pgbouncer,并将max_pool_size和max_client_connections设置为200。底层postgres max_connections也设置为200。典型的连接会话数约为100/130(大多数处于空闲状态)和60池。所以应该不会有问题...
其中有一部分show stats命令:
| total_wait_time | avg_xact_count | avg_query_count | avg_recv | avg_sent | avg_xact_time | avg_query_time | avg_wait_time
+----------------------+----------------+-----------------+----------+----------+---------------+----------------+---------------
| 11720001435236726705 | 27 | 27 | 16612 | 989853 | 11017 | 11017 | 156
除了解析问题外,也没有用户或应用抱怨,日志都没有显示错误。