好消息,Hologres默认连接数增加一倍啦!

简介: Hologres连接数的最佳实践!

好消息,从Hologres V0.10.25版本开始Hologres的默认连接数增加一倍啦!这就意味着,同等规格实例将会拥有更多的连接数,业务上也可以增加更多的应用去连接Hologres,无需再为连接数不够而担心啦!

下面我们来康康现在新版本的连接数和实例规格的映射关系吧:

实例规格

最大总连接数(个) ①

Superuser预留总连接数

32Core

256(128*2)

6

64Core

512(128*4)

6

96Core

768(128*6)

6

128Core

1024(128*8)

9

160Core

1280(128*10)

12

192Core

1536(128*12)

15

256Core

2048(128*16)

18

400Core

3200(128*25)

30

512Core

4096(128*32)

36

Hologres运行时的资源包括用于元数据管理的进程资源、用于查询服务的计算资源、用于优化数据写入的导入链路资源以及缓存服务。所有服务基于容器技术,通过多个并行的容器计算节点实现高性能并行计算能力。

Hologres基于实例的资源规格提供默认的最大连接数是针对大多数场景,经过调校和优化的默认配置。最大连接数不可修改,系统扩容或者缩容时,最大连接数同时调整为对应规格的默认连接数。

但是默认连接数的增加,并不意味着业务上可以无限制随便使用,因此,本文除了带来以上好消息外,还为大家准备了关于连接数使用的最佳实践,以下内容全是实操干货,建议收藏本文并反复阅读,以帮助业务更好的使用Hologres。

实践1:查看实例连接数相关信息

1.查看实例默认连接数

当您创建实例并连接开发工具之后,可以执行如下SQL语句查看当前实例版本的最大连接数

show max_connections;

说明:

1)以上SQL语句的执行结果展示的是单个Frontend节点最大连接数,最大总连接数=单Frontend节点最大连接数*Frontend节点数,上面映射表中最大连接数的括号中为具体每个节点的规格。

2)旧实例版本的查询结果还是会跟之前一致,若有需求可以提工单或者找对应技术支持升级至最新版本,连接数将会默认增加一倍。

2.查看DB连接数

可以通过如下命令查看当前DB的连接数

SELECT  datname
,COUNT(1)ASCOUNTFROM    pg_stat_activity
WHERE   backend_type ='client backend'AND     application_name !='hologres'AND     usename !='holo_admin'GROUPBY datname;

3.查看连接数状态

通过查询pg_stat_activity视图来获取所有JDBC或PSQL连接的状态。

select*from pg_stat_activity where backend_type ='client backend'and state ='<statename>';

其中statename是需要填写的状态参数名,包括以下几种:例如,您可以执行如下命令查询当前实例的空闲连接。

  • idle:空闲连接,表示进程在等待新的客户端命令。
  • active:活跃连接,表示进程正在执行查询操作。
  • idle in transaction:表示进程处于一个事务中,但是当前没有执行查询操作。
  • idle in transaction (aborted):表示进程处于一个事务中,该事务存在语句错误,并且进程当前没有执行查询操作。

示例查看空闲连接:

select*from pg_stat_activity where backend_type ='client backend'and state ='idle';

Holoweb等Hologres周边组件会通过JDBC的方式占用一定的连接数,如果您的连接数满足需求,无需关心此类连接数的占用。当SQL连接数长期接近或达到max_connections时,意味着您需要检查您的应用是否存在连接数泄漏情况,需要在应用端合理设置连接池大小,或者您也可以释放空闲连接。

注意:若是您的账号是superuser,则可以查看到当前实例下的所有连接,但是若您的账号不是superuser,则只能看到自己账号的相关连接。

实践2:管理员预留连接

Hologres会为Superuser预留连接,不同的实例规格预留的连接数不同,具体预留关系可以参考上表。

Superuser预留连接用于在连接数达到最大时对连接进行管理操作(如终止idle连接),普通用户的连接数最大为max_connections减去预留连接。

在实践中,不建议普通用户使用Superuser账号操作数据库,否则会导致连接全部占满,且无法通过管理渠道释放连接。(敲黑板,重点!重点!)

实践3:单个用户预留连接

Hologres支持为单个用户设置连接数上限,以防止某个用户占用过多连接造成资源浪费。

1.限制单个用户连接数。

ALTER ROLE "云账号ID" CONNECTION LIMIT<number>;


参数

说明

云账号ID

需要限制的账号ID,如果为RAM用户,需要在账号UID前加p4_。更多关于账号的说明,请参见账号概述

number

限制的连接数个数。

使用示例:

如下示例限制RAM用户283813xxxx,最多只有一个1连接。

ALTER ROLE "p4_283813xxxx" CONNECTION LIMIT1;


2.查看用户的限制连接数

您可以执行如下语句查看当前已经为实例用户设置的限制连接数。

SELECT rolname, rolconnlimit FROM pg_roles WHERE rolconnlimit <>-1;

查询示例结果如下:      

rolname | rolconnlimit 
---------------+-------------- p4_283813xxxx |1(1 row)

实践4:终止连接

如果您遇到如下情况,则说明系统连接数已经达到上限:

  • 连接数达到甚至超出max_connections的取值,您可以在Hologres管控台的监控告警页查看连接数。
  • 产生FATAL: sorry, too many clients already connection limit exceeded for superusers报错。
  • 产生FATAL: remaining connection slots are reserved for non-replication superuser connections报错。

当您有上述情况产生,可以通过Superuser账号连接实例,执行如下语句查看空闲连接是否过多。

select*from pg_stat_activity where backend_type ='client backend'and state ='idle';

如果查询结果显示空闲进程过多,并且确定是无用的空闲连接时,可以找到上述语句结果中的pid字段,并执行如下语句释放空闲连接。

-- cancel该连接上的queryselect pg_cancel_backend(<pid>);--结束对应的后台连接进程    select pg_terminate_backend(<pid>);--批量终止后台idle连接进程,释放连接SELECT pg_terminate_backend(pid),query
,datname
,usename
,application_name
,client_addr
,client_port
,backend_start
,state
FROM    pg_stat_activity
WHERE   length(query)>0AND     pid != pg_backend_pid()AND     backend_type ='client backend'AND     state ='idle'AND     application_name !='hologres'AND     usename !='holo_admin';

新功能预告


为了能让大家更好的管理连接以及可视化方式优雅的杀连接,后期将会在Holoweb开放连接数管理功能,届时您可以通过Holoweb直接查看当前实例所有的连接数信息,并且可以通过可以通过可视化的方式kill无效连接,方便快捷,简单易用!

更多有关连接数的新功能将会陆续发布,请及时关注群或者社区最新消息!

总结

默认连接数的增加,可以方便业务去连接更多的应用,但并不意味着连接数是无限制使用的,我们需要合理的规划和正确的使用,才能带来事半功倍的效果!下面再为大家总结使用连接数时的最佳姿势:

  1. 善用账号权限,尽量避免Superuser直接连接应用,以方便Superuser账号及时管理连接数
  2. 应用上合理的设置连接池释放机制,同时也建议为单个用户预留连接限制,防止资源浪费
  3. 定期清理空闲连接,防止连接泄漏或者空闲连接占用过多的资源


感谢您的阅读,也欢迎使用体验Hologres,可以参考使用手册,同时也欢迎扫码加入钉群进行技术交流:

holo公共云用户群.jpg


相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
8月前
|
存储 消息中间件 OLAP
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
本文整理自淘天集团高级数据开发工程师朱奥在Flink Forward Asia 2024的分享,围绕实时数仓优化展开。内容涵盖项目背景、核心策略、解决方案、项目价值及未来计划五部分。通过引入Paimon和Hologres技术,解决当前流批存储不统一、实时数据可见性差等痛点,实现流批一体存储与高效近实时数据加工。项目显著提升了数据时效性和开发运维效率,降低了使用门槛与成本,并规划未来在集团内推广湖仓一体架构,探索更多技术创新场景。
1607 3
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
|
SQL 运维 网络安全
【实践】基于Hologres+Flink搭建GitHub实时数据查询
本文介绍了如何利用Flink和Hologres构建GitHub公开事件数据的实时数仓,并对接BI工具实现数据实时分析。流程包括创建VPC、Hologres、OSS、Flink实例,配置Hologres内部表,通过Flink实时写入数据至Hologres,查询实时数据,以及清理资源等步骤。
|
11月前
|
SQL 消息中间件 Kafka
Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
本文介绍了阿里云实时数仓Hologres负责人姜伟华在Flink Forward Asia 2024上的分享,涵盖实时数仓的发展历程、从实时数仓到实时湖仓的演进,以及总结。文章通过三代实时数仓架构的演变,详细解析了Lambda架构、Kafka实时数仓分层+OLAP、Hologres实时数仓分层复用等方案,并探讨了未来从实时数仓到实时湖仓的演进方向。最后,结合实际案例和Demo展示了Hologres + Flink + Paimon在实时湖仓中的应用,帮助用户根据业务需求选择合适的方案。
1560 20
Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
|
10月前
|
存储 SQL Java
Flink CDC + Hologres高性能数据同步优化实践
本文整理自阿里云高级技术专家胡一博老师在Flink Forward Asia 2024数据集成(二)专场的分享,主要内容包括:1. Hologres介绍:实时数据仓库,支持毫秒级写入和高QPS查询;2. 写入优化:通过改进缓冲队列、连接池和COPY模式提高吞吐量和降低延迟;3. 消费优化:优化离线场景和分区表的消费逻辑,提升性能和资源利用率;4. 未来展望:进一步简化用户操作,支持更多DDL操作及全增量消费。Hologres 3.0全新升级为一体化实时湖仓平台,提供多项新功能并降低使用成本。
767 1
Flink CDC + Hologres高性能数据同步优化实践
|
SQL 监控 关系型数据库
用友畅捷通在Flink上构建实时数仓、挑战与最佳实践
本文整理自用友畅捷通数据架构师王龙强在FFA2024上的分享,介绍了公司在Flink上构建实时数仓的经验。内容涵盖业务背景、数仓建设、当前挑战、最佳实践和未来展望。随着数据量增长,公司面临数据库性能瓶颈及实时数据处理需求,通过引入Flink技术逐步解决了数据同步、链路稳定性和表结构差异等问题,并计划在未来进一步优化链路稳定性、探索湖仓一体架构以及结合AI技术推进数据资源高效利用。
841 25
用友畅捷通在Flink上构建实时数仓、挑战与最佳实践
|
存储 消息中间件 OLAP
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“Hologres+Flink企业级实时数仓核心能力”,是2024实时数仓Hologres线上公开课的第三期。课程详细介绍了Hologres与Flink结合搭建的企业级实时数仓的核心能力,包括解决实时数仓分层问题、基于Flink Catalog的Streaming Warehouse实践,并通过典型客户案例展示了其应用效果。
400 10
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
|
10月前
|
SQL 消息中间件 Serverless
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
326 4
|
运维 数据挖掘 网络安全
场景实践 | 基于Flink+Hologres搭建GitHub实时数据分析
基于Flink和Hologres构建的实时数仓方案在数据开发运维体验、成本与收益等方面均表现出色。同时,该产品还具有与其他产品联动组合的可能性,能够为企业提供更全面、更智能的数据处理和分析解决方案。
|
SQL 分布式计算 数据库
畅捷通基于Flink的实时数仓落地实践
本文整理自畅捷通总架构师、阿里云MVP专家郑芸老师在 Flink Forward Asia 2023 中闭门会上的分享。
8544 15
畅捷通基于Flink的实时数仓落地实践
|
存储 SQL 消息中间件
Hologres+Flink企业级实时数仓核心能力介绍
通过Hologres+Flink构建易用、统一的企业级实时数仓。

相关产品

  • 实时数仓 Hologres