ALICloudDB for PostgreSQL 试用报告 - 5 长短连接测试

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS SQL Server,基础系列 2核4GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
简介:
本文将教你测试长连接和短连接的性能。
我们在连接阿里云RDS for PostgreSQL时,实际上并不是直接连接数据库的,而是通过了SLB。
那么这个代理有没有连接池功能呢?通过测试发现,即使有连接池的功能,也是会话级别的,所以如果你的业务系统如果是高并发的短事务,建议你在应用层启用连接池,如果不能启用,那么请在应用层自己假设一个连接池例如pgbouncer。
测试:
3433代理并不是全代理,所以我们看到客户端IP地址就是实际的客户端IP,而不是代理的IP。
postgres@xxx-> psql  -h xxxxxx.pg.rds.aliyuncs.com -p 3433 -U digoal postgres
psql (9.4.3, server 9.4.1)
Type "help" for help.
postgres=> select inet_server_addr(),inet_server_port(),inet_client_addr(),inet_client_port();
 inet_server_addr | inet_server_port | inet_client_addr | inet_client_port 
------------------+------------------+------------------+------------------
 10.151.133.24    |             3006 | 10.172.180.141   |            48520
(1 row)

postgres@xxx-> netstat -anp|grep 3433
tcp        0      0 10.172.180.141:48520        100.99.60.159:3433          ESTABLISHED 29955/psql 
代理的IP是100.99.60.159
postgres@xxx-> dig xxxxxx.pg.rds.aliyuncs.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> xxxxxx.pg.rds.aliyuncs.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33061
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4

;; QUESTION SECTION:
;xxxxxx.pg.rds.aliyuncs.com. IN A

;; ANSWER SECTION:
xxxxxx.pg.rds.aliyuncs.com. 60 IN A 100.99.60.159

;; AUTHORITY SECTION:
rds.aliyuncs.com.       432000  IN      NS      ns5.aliyun.com.
rds.aliyuncs.com.       432000  IN      NS      ns3.aliyun.com.
rds.aliyuncs.com.       432000  IN      NS      ns4.aliyun.com.

;; ADDITIONAL SECTION:
ns3.aliyun.com.         432000  IN      A       115.124.17.155
ns4.aliyun.com.         432000  IN      A       110.75.20.27
ns5.aliyun.com.         432000  IN      A       110.75.38.28
ns5.aliyun.com.         432000  IN      A       198.11.138.248

;; Query time: 0 msec
;; SERVER: 10.202.72.118#53(10.202.72.118)
;; WHEN: Tue Jun 16 08:36:46 2015
;; MSG SIZE  rcvd: 200

短连接TPS测试结果:
postgres@xxx-> vi test.sql
select 1;

pgbench -M extended -C -n -r -f ./test.sql -P 1 -c 88 -j 88 -T 30 -h xxxxxx.pg.rds.aliyuncs.com -p 3433 -U digoal
progress: 1.0 s, 3201.8 tps, lat 2.234 ms stddev 0.372
progress: 2.0 s, 3291.6 tps, lat 2.241 ms stddev 0.349
progress: 3.0 s, 3352.2 tps, lat 2.250 ms stddev 0.370
progress: 4.0 s, 3310.7 tps, lat 2.253 ms stddev 0.361
progress: 5.0 s, 3316.0 tps, lat 2.369 ms stddev 0.528
progress: 6.0 s, 3320.8 tps, lat 2.385 ms stddev 0.484
progress: 7.0 s, 3310.0 tps, lat 2.398 ms stddev 0.480
progress: 8.0 s, 3382.5 tps, lat 2.409 ms stddev 0.465
progress: 9.0 s, 3333.0 tps, lat 2.412 ms stddev 0.475
progress: 10.0 s, 3333.7 tps, lat 2.400 ms stddev 0.464

postgres@xxx-> pgbench -M extended -C -n -r -f ./test.sql -P 1 -c 88 -j 88 -T 30 -h 100.99.60.159 -p 3433 -U digoal
Password: 
progress: 1.0 s, 3433.3 tps, lat 2.290 ms stddev 0.378
progress: 2.0 s, 3330.3 tps, lat 2.257 ms stddev 0.342
progress: 3.0 s, 3326.6 tps, lat 2.273 ms stddev 0.453
progress: 4.0 s, 3293.9 tps, lat 2.244 ms stddev 0.358
progress: 5.0 s, 3343.6 tps, lat 2.276 ms stddev 0.352
progress: 6.0 s, 3421.8 tps, lat 2.322 ms stddev 0.398
progress: 7.0 s, 3611.0 tps, lat 2.475 ms stddev 0.493
progress: 8.0 s, 3599.6 tps, lat 2.454 ms stddev 0.480
progress: 9.0 s, 3554.5 tps, lat 2.458 ms stddev 0.476
progress: 10.0 s, 3590.4 tps, lat 2.466 ms stddev 0.476

长连接TPS测试结果:
postgres@xxx-> pgbench -M extended -n -r -f ./test.sql -P 1 -c 88 -j 88 -T 30 -h xxxxxx.pg.rds.aliyuncs.com -p 3433 -U digoal 
progress: 1.0 s, 46156.5 tps, lat 1.847 ms stddev 0.370
progress: 2.0 s, 46477.1 tps, lat 1.892 ms stddev 0.238
progress: 3.0 s, 46863.0 tps, lat 1.877 ms stddev 0.233
progress: 4.0 s, 47023.7 tps, lat 1.870 ms stddev 0.282
progress: 5.0 s, 44680.1 tps, lat 1.968 ms stddev 0.649
progress: 6.0 s, 44693.4 tps, lat 1.967 ms stddev 0.600
progress: 7.0 s, 46783.2 tps, lat 1.880 ms stddev 0.286
progress: 8.0 s, 46629.4 tps, lat 1.886 ms stddev 0.249
progress: 9.0 s, 46894.5 tps, lat 1.875 ms stddev 0.249
progress: 10.0 s, 46838.3 tps, lat 1.877 ms stddev 0.274
progress: 11.0 s, 46993.2 tps, lat 1.871 ms stddev 0.272
progress: 12.0 s, 46889.7 tps, lat 1.875 ms stddev 0.248
^C
postgres@xxx-> pgbench -M extended -n -r -f ./test.sql -P 1 -c 88 -j 88 -T 30 -h 100.99.60.159 -p 3433 -U digoal 
Password: 
progress: 1.0 s, 45056.3 tps, lat 1.907 ms stddev 0.669
progress: 2.0 s, 46966.6 tps, lat 1.872 ms stddev 0.361
progress: 3.0 s, 47453.7 tps, lat 1.853 ms stddev 0.249
progress: 4.0 s, 46933.7 tps, lat 1.873 ms stddev 0.388
progress: 5.0 s, 47332.4 tps, lat 1.858 ms stddev 0.267
progress: 6.0 s, 46756.9 tps, lat 1.880 ms stddev 0.389
progress: 7.0 s, 45291.0 tps, lat 1.942 ms stddev 0.628
progress: 8.0 s, 47250.0 tps, lat 1.861 ms stddev 0.280
progress: 9.0 s, 45621.5 tps, lat 1.927 ms stddev 0.581
progress: 10.0 s, 45244.7 tps, lat 1.944 ms stddev 0.726
进程模式相比线程模式,fork process开销大一点,所以高并发的短事务请求,建议使用连接池。

[参考]
1. http://git.postgresql.org/gitweb/?p=pgbouncer.git;a=summary
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
2月前
|
关系型数据库 MySQL 数据库
6-2|测试连接数据库的命令
6-2|测试连接数据库的命令
百万并发连接的实践测试02
百万并发连接的实践测试02
|
3月前
|
网络协议 Ubuntu
百万并发连接的实践测试01
百万并发连接的实践测试01
|
3月前
|
JavaScript 前端开发 应用服务中间件
【qkl】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能
【区块链】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能
|
5月前
|
NoSQL Redis 数据安全/隐私保护
连接测试服务器redis
连接测试服务器redis
|
5月前
|
运维 DataWorks 关系型数据库
DataWorks操作报错合集之出现报错导致测试环境可以正常连接,但生产环境无法连接,是什么情况
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之如何解决测试连接时出现2003-Can't connect的问题
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
5月前
|
数据采集 SQL 分布式计算
DataWorks操作报错合集之在执行离线同步时,如果测试连接突然报错并出现类似于“exception occurs:path=[/di/testDetailConnectivity]”,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
DataWorks NoSQL 关系型数据库
DataWorks操作报错合集之在使用 DataWorks 进行 MongoDB 同步时遇到了连通性测试失败,实例配置和 MongoDB 白名单配置均正确,且同 VPC 下 MySQL 可以成功连接并同步,但 MongoDB 却无法完成同样的操作如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
101 1
|
6月前
|
消息中间件 Oracle 关系型数据库
实时计算 Flink版操作报错之连接外部kafka本地执行测试代码报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。

相关产品

  • 云原生数据库 PolarDB
  • 云数据库 RDS PostgreSQL 版