小编jce*_*ern的帖子

PostgreSQL pg_stat_activity 显示 COMMIT

我们最近用升级后的机器替换了我们的数据库服务器,该机器具有 4 个四核 CPU 和 32Gb 内存。我们还重新利用了我们的旧盒子作为流复制的奴隶。两个机器都运行 CentOS 6.3 和 PostgreSQL 9.2。Postgres 是每个盒子上唯一运行的东西。

这种配置已经存在大约一个月左右,当流量开始增加时,我们突然开始遇到一些问题。我们开始看到有时 CPU 负载非常高(顶部显示平均负载为 270),当我们可以查看时,pg_stat_activity我们将看到我们的大部分连接都处于该COMMIT状态。如果不理会,这最终将完成,系统将响应连接变为IDLE。我们已尝试禁用复制以查看是否可能是问题所在,但问题仍然存在。

我们已经尝试诊断正在发生的事情,但有点迷茫。运行的输出perf显示类似于下面的内容,我不知道0x347ba9代表什么。

+  41.40%       48154  postmaster  0x347ba9         f 0x347ba9                                   ?
+   9.55%       10956  postmaster  0x2dc820         f set_config_option                          ?
+   8.64%        9946  postmaster  0x5a3d4          f writeListPage     
+   5.75%        6609  postmaster  0x5a2b0          f ginHeapTupleFastCollect                    ?
+   2.68%        3084  postmaster  0x192483         f build_implied_join_equality                ?
+   2.61%        2990  postmaster  0x187a55         f build_paths_for_OR                         ?
+   1.86%        2131  postmaster  0x794aa …
Run Code Online (Sandbox Code Playgroud)

postgresql

11
推荐指数
1
解决办法
7149
查看次数

标签 统计

postgresql ×1