标签: pgpool

使用pg-promise的连接池

我正在使用Node js和Postgresql,并试图在连接实现中最有效率.
我看到pg-promise建立在node-postgres之上,而node-postgres使用pg-pool来管理池.
我还读到"一次超过100个客户端是一件非常糟糕的事情"(node-postgres).

我正在使用pg-promise并想知道:

  1. 对于非常大的数据负载,推荐的poolSize是什么?
  2. 如果poolSize = 100并且应用程序同时获得101请求(甚至更多)会发生什么?Postgres是否处理订单并使101请求等待它可以运行它?

postgresql node.js pgpool node-postgres pg-promise

4
推荐指数
2
解决办法
3163
查看次数

psql 非选择:如何删除格式并仅显示某些列?

我希望从以下位置删除所有线描字符:

PGPASSWORD="..." psql -d postgres -h "1.2.3.4" -p 9432 -c 'show pool_nodes' -U owner
 node_id |   hostname    | port | status | lb_weight |  role   
---------+---------------+------+--------+-----------+---------
 0       | 10.20.30.40   | 5432 | 2      | 0.500000  | primary
 1       | 10.20.30.41   | 5432 | 2      | 0.500000  | standby
(2 rows)
Run Code Online (Sandbox Code Playgroud)

添加该-t选项可以去掉页眉和页脚,但竖线仍然存在:

PGPASSWORD="..." psql -t -d postgres -h "1.2.3.4" -p 9432 -c 'show pool_nodes' -U owner
 0       | 10.20.30.40   | 5432 | 2      | 0.500000  | primary
 1       | …
Run Code Online (Sandbox Code Playgroud)

postgresql pgpool psql

4
推荐指数
1
解决办法
3470
查看次数

使用重读从站管理热备中 Postgres 复制的冲突和滞后

要求:

避免terminating connection due to conflict with recovery错误,也有可接受的replication lag

Google Cloud PostgreSQL 9.6,复制开启(使用流式复制),PGPool-II 设置为只做负载均衡并且在从属设备上具有以下属性:

work_mem    3276800
commit_delay    100
max_wal_size    940
max_standby_archive_delay   -1
max_standby_streaming_delay -1
hot_standby_feedback    on
Run Code Online (Sandbox Code Playgroud)

机器配置

vCPU:8,内存:30 GB,SSD 存储:76 GB

工作量:

Master满载writesreads,slave也满载了很多reads。查询的最大长度可能约为8-10秒。

我们之前尝试过的:

  • 设置max_standby_archive_delaymax_standby_streaming_delay900000(900秒),但是我们看到了很多的conflict错误。

  • 设置max_standby_archive_delaymax_standby_streaming_delay-1,这使冲突错误消失,但是滞后增加了很多(在某处23mins

  • 设置max_standby_archive_delaymax_standby_streaming_delay-1hot_standby_feedbackon。这也使冲突错误消失了,但是我们仍然看到复制滞后(大约500 secs …

postgresql replication database-replication pgpool

4
推荐指数
1
解决办法
1580
查看次数

PgPool-II 和 repmgr 自动故障转移

我有用于 HA 的 pgpool-II 和用于自动故障转移的 repmgr。Pgpool-II 也可以运行故障转移 我只是想知道使用 pgpool 或 repmgr 进行自动故障转移?如果 pgpool 可以进行故障转移,我是否需要使用 repmgr?并使用shell脚本来晋升新高手?

postgresql pgpool repmgr automatic-failover

3
推荐指数
1
解决办法
3293
查看次数

PgBouncer 和 PgPool II 的其他中间件替代品是什么?

我试图找到可用于 Postgres DB 的不同中间件。每个人都在推荐 PgBouncer 和 PgPool II。我可以使用的其他中间件列表是什么。

postgresql benchmarking connection-pooling pgpool pgbouncer

3
推荐指数
1
解决办法
3005
查看次数

使用 PgPool 进行 Postgres 的同步与异步流复制

阅读 PgPool 的文档后,我很困惑哪个选项最适合我的用例。我需要一个主数据库实例来服务查询,以及主数据库实例的 1 个或多个副本(备用)用于灾难恢复场景。对我来说非常重要的是,所有成功提交到主节点的事务都保证最终被复制到副本,这样当发生故障转移时,副本数据库实例将拥有直到并包括应用于其的最新事务的所有事务。

在异步复制方面,我在 PgPool 文档中没有看到任何提及是否是这种情况,但是,它确实提到了一些潜在的数据丢失,这对我来说有点太模糊了,无法得出任何结论。

为了防止这种数据丢失,文档建议使用同步流复制,在主节点中提交事务之前,确保所有副本也应用了该更改。因此,这种方法比异步方法慢,但如果没有数据丢失,它是可行的。

同步复制是允许我实现用例的唯一方法吗?还是异步复制也可以实现这一点?另外,异步复制中潜在的数据丢失是什么构成的?

postgresql replication database-replication pgpool

3
推荐指数
1
解决办法
3317
查看次数

具有 10000 个并发连接的 pgpool num_init_children

昨天我用 pgbench 测试了 pgpool :

pgbench -c 30 -T 20 -r pgbench -p9999 -h192.168.8.28
Run Code Online (Sandbox Code Playgroud)

并发连接数为 30,pgpool 默认 num_init_children 为 32。

因此,当我设置 -c 33 时,除非我爆发,否则测试将被阻止。


我的问题是:

If my concurrent connections online is 10000, should I set num_init_children=10000? 
Run Code Online (Sandbox Code Playgroud)

num_init_children=10000 意味着 pgpool 以 10000 个进程开始,这很糟糕。

有什么不对 ?

如何使用 10000 个并发连接配置 pgpool?

postgresql connection concurrency pgpool

2
推荐指数
1
解决办法
2824
查看次数

pgpool 3.5.4 和 JDBC 的问题

我有一个启用了内存缓存的 pgpool 3.5.4,我用它连接到 Redshift。

我写了两个简单的程序,一个用 Java(JDBC postgresql-9.4.1212.jre6.jar)和另一个用 Python(使用 psycopg2 postgres 包)连接到 pgpool,并执行一个简单的查询(例如:select * from customer限制为 10;) 我注意到了奇怪和不同的行为。我还使用命令行工具 psql 运行了查询。

1) 在启用缓存的情况下将 JDBC 与 pgpool 一起使用我收到一个错误

2016-11-15 10:56:27:pid 31043:致命:后端抛出错误消息

2016-11-15 10:56:27:pid 31043:详细信息:由于后端错误而退出当前会话

2016-11-15 10:56:27:pid 31043:提示:后端错误:“门户“pgpool31043”不存在”

2)在禁用缓存的情况下将 JDBC 与 pgpool 一起使用它可以工作

3) 在 pgpool 中使用 psycopg2 或 psql 命令行并启用或禁用缓存,它可以工作

有人能帮我理解为什么只有 JDBC 不起作用吗?

postgresql jdbc pgpool

2
推荐指数
1
解决办法
1115
查看次数

PostgreSQL性能调优和最大连接(实际上)

在过去的几周里,我一直在调整和搞乱PostgreSQL,我将在下一个项目中使用它.

我的规格是:

  • DigitalOcean 8核心16GB SSD x2(一个用于DB,另一个用于Web)
  • Centos 7
  • PHP5,Nginx

我试过的事情:

  1. Pgtune

  2. PgBouncer&Pgpool(连接池和负载平衡)

  3. 调整php-fpm和nginx(worker_processes,worker_connections,pm.max_children等)

  4. Linux文件句柄限制和套接字调整.

我正在测试它通过使用ApacheBench调用网页来插入.这是实用的吗?

ab -n 17500 -c 1750 -r http://example.com/insert.php
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只能同时处理1700-2000连接而不丢弃任何事务(通常在nginx错误日志中过早关闭连接资源暂时不可用抱歉, PostgreSQL 已经返回太多客户端).

我为php-fpm尝试了TCP/IP和unix socket,而TCP/IP似乎比unix socket更具可扩展性.

PHP可以使用连接池吗?因为我从Web服务器调用数据库的方式仍然相同(对pgpool或pgbouncer进行了大量的单独连接).

我的目标是同时处理至少10,000个事务.决定因素是什么?它是web服务器与db(php-fpm)或PostgreSQL本身之间的瓶颈吗?通常,大公司(PHP Web应用程序)如何处理这样的卷?

sockets postgresql nginx pgpool pgbouncer

2
推荐指数
1
解决办法
1138
查看次数

使用Windows服务器对PostgreSQL进行负载均衡

我有一个关于在使用PostgreSQL和Windows服务器时负载平衡的可能性的问题.在Unix系统上,这可以通过使用pgpool-II实现.如何在Windows中实现相同的目标?

我知道在复制时你不能混合使用系统.Pgpool文档说明:

我可以将PostgreSQL的不同平台混合为pgpool-II后端,例如Linux和Windows吗?

在流复制模式下,没有

那个不同的场景怎么样?我可以在Unix机器上运行pgpool,并在Windows服务器池上配置复制和负载平衡吗?

我正在使用Windows Server 2008 R2以防万一.

windows postgresql replication load-balancing pgpool

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

pgpool 无法创建数据库

我已经开始pgpool使用命令

sudo pgpool -n &
Run Code Online (Sandbox Code Playgroud)

它开始在终端上给出以下消息:

2012-05-04 10:54:29 日志:pid 4109:pgpool-II 成功启动。版本 2.3.2.1 (tomiteboshi)

但是当我尝试运行以下命令时:

createdb -p 9999 bench_replication
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

createdb:无法连接到数据库 postgres:无法连接到服务器:没有这样的文件或目录。服务器是否在本地运行并接受 Unix 域套接字“/var/run/postgresql/.s.PGSQL.9999”上的连接?

当我将端口从 9999 更改为 5432 时,bench_replication只会在本地节点上创建数据库,而不会在从节点上创建数据库。但是,教程说要在此命令中提及端口 9999,以便bench_replication通过pgpool.

为了确认是否pgpool真的在运行,我停止pgpool使用命令

2012-05-04 10:58:50 LOG:   pid 4109: received smart shutdown request
stop request sent to pgpool. waiting for termination...done.
[1]+  Done                    sudo -A pgpool -n
Run Code Online (Sandbox Code Playgroud)

这证实了pgpool实际上正在运行。我究竟做错了什么?我已经更改pgpool了网络上标准教程中提到的所有配置文件。

database postgresql pgpool

0
推荐指数
1
解决办法
3440
查看次数