暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL pgbench 支持100万连接

digoal 2018-05-16
259

作者

digoal

日期

2018-05-16

标签

PostgreSQL , pgbench , poll , 超过1000连接


背景

《阿里云 RDS PostgreSQL 高并发特性 vs 社区版本 (1.6万并发: 3倍吞吐,240倍响应速度)》

最近测试的阿里云高并发版本的性能,在1.6万个连接下,实际SQL的响应速度是社区版本的240倍。但是很多网友问怎么测的1.6万个连接,因为pgbench默认只能连1000个连接。

超过1000个连接会报错如下

invalid number of clients

让pgbench支持100万个连接

1、需要poll patch

https://commitfest.postgresql.org/18/1388/

wget https://www.postgresql.org/message-id/attachment/60012/pgbench11-ppoll-v12.patch

2、下载PostgreSQL 11源码

wget https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2

3、patch poll

```
tar -jxvf postgresql-snapshot.tar.bz2

cd postgresql-11devel
patch -p1 < ../pgbench11-ppoll-v12.patch
```

4、关闭限制

vi src/bin/pgbench/pgbench.c

```
//#ifdef HAVE_PPOLL // 修改

define POLL_USING_PPOLL

include

//#endif // 修改

                    case 'c':  
                            benchmarking_option_set = true;  
                            nclients = atoi(optarg);  
                            if (nclients <= 0)      // || (MAXCLIENTS != -1 && nclients > MAXCLIENTS))    // 修改  
                            {

```

5、安装

./configure --prefix=/home/digoal/pgsql11 make world -j 128 make install-world

现在pgbench可以愉快的测试100万个连接了。

将来PG社区版本,应该会把PATCH合进来,支持超过1000个连接。

参考

《从PostgreSQL支持100万个连接聊起》

《PostgreSQL 11 preview - pgbench 支持大于1000链接(ppoll()代替select())》

《阿里云 RDS PostgreSQL 高并发特性 vs 社区版本 (1.6万并发: 3倍吞吐,240倍响应速度)》

PostgreSQL 许愿链接

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

9.9元购买3个月阿里云RDS PostgreSQL实例

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

文章转载自digoal,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论