作者
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 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 - 公益是一辈子的事.





