Postgresql Postgres具有并发/加载的阻塞行为

Postgresql Postgres具有并发/加载的阻塞行为,postgresql,concurrency,load,Postgresql,Concurrency,Load,在正常负载期间,50名用户同时使用简单查询和GIS计算访问PostgreSQL。DB显示呼叫被严重阻塞。标准偏差从10个同时连接时的50 ms开始增加到300 ms 有什么指针吗?一般来说,我们希望至少从PostgreSQL的并发性规划入手,如下所示: 两倍于物理内核(在本例中为2)+硬盘驱动器主轴数量 更快的存储实际上在某些方面增加了并发问题,但查询运行速度更快,因此在其他方面减少了并发问题(即,每秒可以运行更多查询,但以最快速度同时运行的查询却更少)。是阻塞还是负载过重?top显示了什么?随

在正常负载期间,50名用户同时使用简单查询和GIS计算访问PostgreSQL。DB显示呼叫被严重阻塞。标准偏差从10个同时连接时的50 ms开始增加到300 ms


有什么指针吗?

一般来说,我们希望至少从PostgreSQL的并发性规划入手,如下所示:

两倍于物理内核(在本例中为2)+硬盘驱动器主轴数量


更快的存储实际上在某些方面增加了并发问题,但查询运行速度更快,因此在其他方面减少了并发问题(即,每秒可以运行更多查询,但以最快速度同时运行的查询却更少)。

是阻塞还是负载过重?
top
显示了什么?随机同一个查询开始花费更多的时间,执行时间有更高的偏差。好吧,如果服务器负载很重,这并不意外。你需要检查它的负载情况。您的服务器可以处理50个并发查询吗?您有多少个内核?Sparc-T3 Solaris具有1个cpu、2个内核和16个虚拟处理器。那么,为什么您希望在2个内核上以与2个查询相同的速度运行50个并发查询呢?为自己编写一个小测试脚本,它会分叉50次,计数到100万,看看时间的传播会发生什么。