PostgreSQLpgbench支援100萬連線
標籤
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 <poll.h>
//#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倍響應速度)》
相關文章
- 連線格式最佳化,支援自定義
- 內連線、左連線、右連線
- Matrikon FLEX OPC UA SDK升級!現在支援反向連線!Flex
- 透過RestHighLevelClient相容模式連線elasticsearch8.x(支援https)RESTclient模式ElasticsearchHTTP
- 一臺伺服器最大能支援多少條TCP連線?伺服器TCP
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- 長連線和短連線
- Socket連線和Http連線HTTP
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- mysql INNER JOIN、LEFT JOIN、RIGHT JOIN;內連線(等值連線)、左連線、右連線MySql
- VNC連線,VNC如何連線WindowsVNCWindows
- sql 內連線和外連線SQL
- http的長連線和短連線HTTP
- Http持久連線與HttpClient連線池HTTPclient
- 長連線和短連線的使用
- 連線池和連線數詳解
- 如何快速讓MySQL資料庫伺服器支援遠端連線MRMySql資料庫伺服器
- Oracle左外連線、右外連線、完全外連線以及(+)號用法Oracle
- 關於面向連線與面向無連線
- ubuntu系統安裝mysql並支援遠端連線的詳細過程UbuntuMySql
- 基於websocket單臺機器支援百萬連線分散式聊天(IM)系統Web分散式
- 3.DQL資料查詢語言(內連線,外連線,自連線)
- 連線池
- websocket連線Web
- tcp 連線TCP
- dotnet 9 WPF 連字元渲染支援字元
- JAVA之長連線、短連線和心跳包Java
- python 連線 mongo 資料庫連線超時PythonGo資料庫
- 連線zk 報錯連線不上hbase jdbcJDBC
- python 怎麼連線 sql server,不是連線 mysqlPythonServerMySql
- scrapy軟連線失效和pip軟連線失效
- 連線mysql時提示is not allowed to connect不允許連線MySql
- 【問題記錄】—SignalR連線斷線重連SignalR
- HTTP非持續連線和持續連線HTTP
- MYSQL學習筆記23: 多表查詢(自連線內連線+左右外連線)MySql筆記
- 印表機離線了怎麼連線 印表機離線的連線方法
- Laravel redis 連不同的連線LaravelRedis
- 聯想無線滑鼠怎麼連線電腦連線藍芽藍芽