详情页标题前

阿里云RDS数据库Thread Pool-云淘科技

详情页1

为了发挥出RDS的最佳性能,阿里云提供线程池(Thread Pool)功能,将线程和会话分离,在拥有大量会话的同时,只需要少量线程完成活跃会话的任务即可。

优势

MySQL默认的线程使用模式是会话独占模式,每个会话都会创建一个独占的线程。当有大量的会话存在时,会导致大量的资源竞争,大量的系统线程调度和缓存失效也会导致性能急剧下降。

阿里云RDS的线程池实现了不同类型SQL操作的优先级及并发控制机制,将连接数始终控制在最佳连接数附近,使RDS数据库在高连接大并发情况下始终保持高性能。线程池的优势如下:

  • 当大量线程并发工作时,线程池会自动调节并发的线程数量在合理的范围内,从而避免线程调度工作过多和大量缓存失效。
  • 大量的事务并发执行时,线程池会将语句和事务分为不同的优先级,分别控制语句和事务的并发数量,从而减少资源竞争。
  • 线程池给予管理类的SQL语句更高的优先级,保证这些语句优先执行。这样在系统负载很高时,新建连接、管理、监控等操作也能够稳定执行。
  • 线程池给予复杂查询SQL语句相对较低的优先级,并且有最大并发数的限制。这样可以避免过多的复杂SQL语句将系统资源耗尽,导致整个数据库服务不可用。

前提条件

实例版本为RDS MySQL 5.6/5.7/8.0。

使用Thread Pool

Thread Pool设计了如下三个参数,您可以在控制台进行修改。详情请参见设置实例参数。

参数 说明
loose_thread_pool_enabled 是否开启线程池功能。取值:

  • ON
  • OFF

默认值:ON。


说明

  • 开启/关闭线程池功能使用本参数即可,不再使用参数thread_handling进行控制。
  • 开启/关闭线程池功能无需重启实例。
loose_thread_pool_size 分组的数量,默认值:4。线程池中的线程被平均分到多个组中进行管理。
loose_thread_pool_oversubscribe 每个组中允许的活跃线程的数量,默认值:32。活跃线程是指正在执行SQL语句的线程,但是不包括以下两种情形:

  • SQL语句在等待磁盘IO;
  • SQL语句在等待事务提交。

查询Thread Pool状态

您可以通过如下命令查询Thread Pool状态:

show status like "thread_pool%";

示例:

mysql> show status like "thread_pool%";

+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| thread_pool_active_threads | 1     |
| thread_pool_big_threads    | 0     |
| thread_pool_dml_threads    | 0     |
| thread_pool_idle_threads   | 19    |
| thread_pool_qry_threads    | 0     |
| thread_pool_total_threads  | 20    |
| thread_pool_trx_threads    | 0     |
| thread_pool_wait_threads   | 0     |
+----------------------------+-------+
8 rows in set (0.00 sec)            

参数说明如下。

参数 说明
thread_pool_active_threads 线程池中的活跃线程数。
thread_pool_big_threads 线程池中正在执行复杂查询的线程数。复杂查询包括有子查询、聚合函数、group by、limit等的查询语句。
thread_pool_dml_threads 线程池中的在执行DML的线程数。
thread_pool_idle_threads 线程池中的空闲线程数。
thread_pool_qry_threads 线程池中正在执行简单查询的线程数。
thread_pool_total_threads 线程池中的总线程数。
thread_pool_trx_threads 线程池中正在执行事务的线程数。
thread_pool_wait_threads 线程池中正在等待磁盘IO、事务提交的线程数。

Sysbench测试

如下是开启线程池和不开启线程池的性能对比。从测试结果可以看出线程池在高并发的情况下有着明显的性能优势。

阿里云RDS数据库Thread Pool-云淘科技阿里云RDS数据库Thread Pool-云淘科技阿里云RDS数据库Thread Pool-云淘科技阿里云RDS数据库Thread Pool-云淘科技阿里云RDS数据库Thread Pool-云淘科技

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/154244.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 阿里云日志服务SLS监控时效性说明-云淘科技

    告警的实现原理基于告警的查询时间范围,根据检查频率定时执行配置的查询语句,并将查询结果作为告警条件的参数进行计算,如果计算结果为true,则触发告警。本文介绍告警监控的时效性说明。 关于监控时效性,说明如下: 创建告警监控规则时,不建议将查询范围设置成和检查频率一样的相对时间。 例如查询范围为相对1分钟,检查频率为固定间隔1分钟。 以检查频率为固定间隔1分钟…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS查询和分析日志-云淘科技

    创建索引后,您可以在查询和分析页面对采集到的日志进行实时查询和分析。 前提条件 已采集日志。具体操作,请参见数据采集。 重要 进行日志分析前,需要先将日志采集到Standard Logstore中。更多信息,请参见管理Logstore。已创建索引。具体操作,请参见创建索引。 如果您要分析日志,则需创建字段索引且开启统计功能。 操作视频 您可以参见如下视频完成…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云RDS数据库查看性能事件-云淘科技

    RDS提供查看性能事件的功能,可以查看数据库实例异常事件、优化事件和弹性伸缩事件的明细以及统计信息,包括计划执行、正在执行和已执行完成的事件。 查看事件和建议 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。 在左侧导航栏单击监控与报警。 在性能事件页面,单击事件和建议页签,查看选定时间范围内各类事件的统计数据。 说明 选择时间范围时,查询结束时间…

    阿里云数据库 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云云原生大数据计算服务 MaxCompute增量查询-云淘科技

    Transactional Table 2.0支持增量写入和存储,最重要的一个考虑就是支持增量查询以及增量计算优化,为此,专门设计开发了新的SQL增量查询语法来支持近实时增量处理链路。 增量查询的处理过程 增量查询Transactional Table 2.0的处理过程如下图所示。 当输入一个SQL语句后,引擎侧会解析用户指定的版本范围查询出来所有符合时间范…

    2023年12月10日
  • 阿里云日志服务SLSCLI概述-云淘科技

    为满足越来越多的自动化日志服务配置需求,日志服务提供命令行工具CLI(Command Line Interface)。 主要功能 日志服务命令行工具CLI的主要功能包括: 支持大部分的日志服务REST接口。例如管理Project、Logstore、机器组、消费组和Logtail配置等。 支持多账号,便于跨地域操作日志。 支持基本查询和拉取日志。 支持Elas…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。