天天看點

PostgreSQL 11 preview - pgbench 支援大于1000連結(ppoll()代替select())

标簽

PostgreSQL , pgbench , ppoll

https://github.com/digoal/blog/blob/master/201803/20180325_03.md#%E8%83%8C%E6%99%AF 背景

目前pgbench最大可以測試1000個連接配接,顯然在某些時候是不夠的,我們可能需要建立更多的連接配接進行測試。

$ pgbench -j 3000 -c 1500       invalid number of clients: "1500"           

使用這裡提到的方法修改一下pgbench,讓它能夠建立100萬個連接配接。

《從PostgreSQL支援100萬個連接配接聊起》

PostgreSQL 11這塊會改掉,使用ppoll代替select,超過1000個連接配接。

[trying again for 2018-01]       This patch enables building pgbench to use ppoll() instead of select()       to allow for more than (FD_SETSIZE - 10) connections.  As implemented,       when using ppoll(), the only connection limitation is system resources.       The patch has been implemented to introduce a minimal of #ifdef/#ifndef       clutter in the code.       Without this patch, one is limited to '(FD_SETSIZE - 10)’ number of connections.       Example of something that fails without this patch but works with the patch:       Without the patch:       $ pgbench -j 3000 -c 1500       invalid number of clients: "1500"       With the patch:       $ pgbench -j 3000 -c 1500       starting vacuum...end.       transaction type: <builtin: TPC-B (sort of)>       scaling factor: 2000       query mode: simple       number of clients: 1500       number of threads: 1500       number of transactions per client: 10       number of transactions actually processed: 15000/15000       latency average = 631.730 ms       tps = 2374.430587 (including connections establishing)       tps = 4206.524986 (excluding connections establishing)       doug       --       Doug Rady       Amazon Aurora, RDS PostgreSQL       radydoug(at)amazon(dot)com           

https://github.com/digoal/blog/blob/master/201803/20180325_03.md#%E5%8F%82%E8%80%83 參考

https://www.postgresql.org/message-id/flat/[email protected]#[email protected]

繼續閱讀