ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB资源类型

YashanDB资源类型

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-03-19 18:33:23 0 删除 编辑

YashanDB资源管理通过配置物理资源(CPU、内存等)的分配规则,以满足不同用户或程序对资源的需求:

  • CPU资源管理适用于单机部署(非级联备)和分布式部署,且适用于LINUX和ARM平台,不适用于docker容器。

  • 内存资源管理适用于单机部署(非级联备)和分布式部署。

  • 并行执行资源适用于单机部署(非级联备)和分布式部署。

#CPU资源管理

YashanDB的CPU资源管理用于保证数据库在稳定运行的前提下,保障核心用户的使用和紧急任务的运行及最大限度提高CPU整体资源的利用率。

CPU资源管理功能按节点生效,例如配置某个用户的CPU资源上限为20%则表示该用户对环境中每个节点的CPU可使用上限为20%。CPU资源上限可能存在波动,上限+3%以内均属正常情况。

CPU资源管理的资源计划指令主要通过 SHARES、 UTILIZATION_LIMIT、 MGMT_P1参数约束CPU使用份额。

#SHARES

CPU共享模式下的使用份额,须为[1,100]中的整数。当CPU资源不足时,该值越大就能获得更多的CPU资源。但是,具体分配的CPU资源需要根据与其它资源使用组的份额计算后确定。

为了确保内置资源使用组SYS_GROUP有足够的资源可用,当该组的共享资源(MGMT_P1)较少或较多时,系统会根据用户的输入进行动态调整。如果SYS_GROUP的MGMT_P1全局比例低于40%或高于60%时,系统会将SYS_GROUP的MGMT_P1调整为其它资源使用组的MGMT_P1总和。这种情况下,SYS_GROUP的MGMT_P1值可能会超过100( 可以通过查看视图DBA_RSRC_PLAN_DIRECTIVES的MGMT_P1字段来了解,全局比例的计算公式是:SYS_GROUP的MGMT_P1 / 所有资源使用组的MGMT_P1总和)。

#UTILIZATION_LIMIT

CPU的最大可能使用率,须为[1,100]中的整数。无论系统的CPU资源如何,分配给资源使用组的CPU资源不会超过这个上限。计算CPU最大使用率的公式是 UTILIZATION_LIMIT * CPU个数。例如一个用户映射的资源使用组设定的UTILIZATION_LIMIT为10,CPU的个数为2,那么这个用户最多够使用的20%的CPU资源。

#MGMT_P1

CPU共享模式下的使用份额,与 SHARES参数相同含义。

#MAX_UTILIZATION_LIMIT

CPU的最大可能使用率,与 UTILIZATION_LIMIT参数相同含义。

Note:

  • 当同时设置MGMT_P1和SHARES参数时,以 SHARES参数为准。
  • 当同时设置MAX_UTILIZATION_LIMIT和UTILIZATION_LIMIT参数时,以 UTILIZATION_LIMIT参数为准。

#内存资源管理

YashanDB用户内存资源管理,主要针对用户在一定时间内能独占的内存(即SPA,详情参考 内存体系)进行分配和管理,公共缓存或其他没有用户属性的内存区域则不在管理范围内。

用户内存资源管理的资源计划指令主要通过 SPA_LIMIT、 SESSION_SPA_LIMIT、 SPA_LIMIT_RESERVED和 EXECUTION_QUEUE_TIMEOUT参数约束会话和资源使用组的内存使用。

#SPA_LIMIT

计划指令中的 SPA_LIMIT,表示对应资源使用组最大能使用整个系统的用户内存的比例值,公共缓存等其他内存不在限制内。在多实例部署下(例如分布式部署), SPA_LIMIT表示的是对应本地实例(或节点)内部SPA部分内存的占比。例如,CN节点与DN节点在内存配置上有不同的大小,资源使用组能在对应节点上使用的SPA内存的上限,都是通过 SPA_LIMIT的比例进行折算的,每个节点最终的内存大小不一定是一样的。

#SESSION_SPA_LIMIT

资源使用组下的会话工作时,不仅受到整个资源使用组总的SPA内存上限比例 SPA_LIMIT的限制,同时也受到单个会话自身的 SESSION_SPA_LIMIT限制。 SESSION_SPA_LIMIT表示该资源使用组下的会话(即会话对应的用户从属于该资源使用组),能使用资源使用组总的SPA内存上限的比例大小。例如资源使用组HIGH_GROUP的计划指令下 SPA_LIMIT和 SESSION_SPA_LIMIT分别是50和10,那对应的会话能使用SPA内存的上限为SPA总内存的5%(即50% * 10%)。

会话运行过程中会受到会话SPA内存上限约束,同时多个会话并发运行也收到资源使用组SPA内存上限的约束。

#SPA_LIMIT_RESERVED

在高并发性能敏感的场景下,SPA内存的集中管控无法避免带来性能损耗。计划指令中的 SPA_LIMIT_RESERVED,允许资源使用组将一定比例的SPA内存使用额度预留下来,提前平均分配给各个会话,使得会话在没有超出该预留额度前,无需向资源使用组申请或释放,从而获得更优的性能表现。

由于不同部署形态下活跃会话的数量不同,预留额度分配的基数也不同:

  • 单机部署下,预留额度按 MAX_SESSIONS配置参数的值进行分配;
  • 分布式部署下,预留额度按 MAX_WORKERS配置参数的值进行分配。如果 MAX_WORKERS值为0,则按对应服务器上CPU核数的2倍计算。

#EXECUTION_QUEUE_TIMEOUT

分布式部署形态下,为了提高执行成功率,正式执行前会进行资源预占,同时在资源分配冲突导致失败后,支持重试处理。 EXECUTION_QUEUE_TIMEOUT表示执行过程中的重试、等待的最大时间,不包含执行时间或重试的执行时间,超过这个时间则执行会失败报错。

#并行执行资源管理

YashanDB并行执行资源管理,通过在执行前预分配并行线程,有效减少系统在高并发情况下因并行线程不足而报错的情况。每个资源使用组分配了一定数量的可用并行线程,如果在执行时无法获取到足够的并行线程,系统会进行等待和重试,直到获取所需的线程资源。

并行执行资源管理的资源计划指令主要通过 PARALLEL_SERVER_LIMIT参数约束资源使用组的并行线程使用。

#PARALLEL_SERVER_LIMIT

资源使用组的最大并行资源百分比,须为[0,100]中的整数。根据系统总体可用的最大并行线程数 MAX_PARALLEL_WORKERS,可以计算出每个资源使用组的可用并行线程数是  MAX_PARALLEL_WORKERS *  (PARALLEL_SERVER_LIMIT / 100)。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3078135/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: YashanDB资源管理
请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    640225