跳到内容
标志
雷竞技下载官网用于MySQL的Percona服务器
线程池
初始化搜索
    雷竞技下载官网percona / psmysql-docs
    雷竞技下载官网percona / psmysql-docs
    • 首页
      • Perc雷竞技下载官网ona XtraDB存储引擎
      • Percona Server中MySQL版本的可用特性列表雷竞技下载官网
      • 雷竞技下载官网Percona服务器对MySQL特性的比较
      • 在Percona Se雷竞技下载官网rver 8.0中更改
      • 了解版本号
      • 安装MySQL的雷竞技下载官网Percona服务器
        • 使用APT存储库安装
        • DEB包中的文件
        • 构建APT包
        • 从下载的DEB包安装
        • 恰当的把
        • 为MyS雷竞技下载官网QL运行Percona Server
        • 卸载
        • 使用RPM存储库进行安装
        • RPM包中的文件
        • 从下载的RPM包安装
        • 为MyS雷竞技下载官网QL运行Percona Server
        • 卸载
        • 使用二进制tarball安装
        • 二进制压缩文件可用
        • 从源tarbal雷竞技下载官网l安装MySQL的Percona服务器
        • 编译Percon雷竞技下载官网a Server for MySQL 8.0
      • 安装后的
      • 雷竞技下载官网Percona Server for MySQL就地升级指南:从5.7到8.0
      • 使用Percona存储库升级雷竞技下载官网
      • 从使用MyRocks或TokuDB存储引擎和分区表的系统升级
      • 使用独立包升级
      • 降级MySQL的Pe雷竞技下载官网rcona服务器
      • 在Docker容雷竞技下载官网器中为MySQL运行Percona服务器
      • Docker环境变量
      • 改进了InnoDB I/O可伸缩性
      • 自适应网络缓冲器
      • 多页异步I/O请求
      • 线程池
        • 优先级连接调度
          • 低优先级队列节流
        • 处理长时间网络等待
        • 版本相关信息
        • 系统变量
          • thread_pool_idle_timeout
          • thread_pool_high_prio_mode
          • thread_pool_high_prio_tickets
          • thread_pool_max_threads
          • thread_pool_oversubscribe
          • thread_pool_size
          • thread_pool_stall_limit
          • 从8.0.14之前的版本升级到8.0.14或更高版本
          • extra_port
          • extra_max_connections
        • 状态变量
          • Threadpool_idle_threads
          • Threadpool_threads
        • 其他阅读
      • XtraDB对I/ o绑定的高并发工作负载的性能改进
      • 前缀索引查询优化
      • 限制查询中记录的估计
      • Jemalloc内存分配概要
      • ProcFS插件
      • 二进制日志和复制改进
      • 使用字典压缩列
      • 扩展选择到OUTFILE/DUMPFILE
      • 扩展SET VAR优化提示
      • 改进的内存存储引擎
      • 屏蔽警告消息
      • 限制二进制日志文件使用的磁盘空间
      • 支持PROXY协议
      • SEQUENCE_TABLE (n)的功能
      • 缓慢的查询日志旋转和过期
      • 触发更新
      • 扩展mysqlbinlog
      • 扩展,mysqldump
      • InnoDB全文搜索的改进
      • 连接过多警告
      • 处理损坏的表
      • 雷竞技下载官网Percona Toolkit udf
      • 终止空闲事务
      • XtraDB改变了页面跟踪
      • 强制存储引擎
      • 扩展快速索引创建
      • 备份锁
      • 审计日志插件
      • 使用一致的快照启动事务
      • 展期补助金
      • 实用程序的用户
      • 使用SELinux
      • 使用AppArmor
      • PAM认证插件
      • 服务器变量
      • SSL的改进
      • 数据屏蔽
        • 使用LDAP认证插件
        • LDAP认证插件系统变量
        • 静止数据加密
        • 使用keyring组件或keyring插件
          • 使用密钥管理互用协议(KMIP)
          • 使用Amazon密钥管理服务(AWS KMS)
          • FIDO认证插件
        • 加密功能
        • 加密文件-每个表的表空间
        • 加密模式或一般表空间
        • 加密系统表空间
        • 加密临时文件
        • 加密二进制日志文件和中继日志文件
        • 加密Redo Log数据
        • 加密undo表空间
        • 旋转主键
        • 高级加密密钥旋转
        • 加密doublewrite缓冲区
        • 验证表、表空间和模式的加密
      • 用户数据
      • 慢查询日志
      • 扩展显示引擎InnoDB状态
      • 显示存储引擎
      • 进程列表
      • 混杂。INFORMATION_SCHEMA表
      • 基于线程的分析
      • InnoDB页面碎片计数器
      • 加亮
      • Libcoredumper
      • 管理组复制流控
      • 组复制系统变量
      • 雷竞技下载官网Percona MyRocks简介
      • 雷竞技下载官网Percona MyRocks安装指南
      • 更新支持的特性
      • MyRocks局限性
      • Percona MyRocks和Face雷竞技下载官网book MyRocks的区别
      • MyRocks信息模式表
      • MyRocks服务器变量
      • MyRocks状态变量
      • 缝隙锁检测
      • 数据加载
      • 安装和配置Percona Server for MyS雷竞技下载官网QL与ZenFS支持
      • TokuDB介绍
      • TokuDB安装
      • 使用TokuDB
      • 快速更新与TokuDB
      • TokuDB文件和文件类型
      • TokuDB文件管理
      • TokuDB后台分析表
      • TokuDB变量
      • TokuDB状态变量
      • TokuDB分形树索引
      • TokuDB故障排除
      • TokuDB性能模式集成
      • 常见问题
      • 迁移并移除TokuDB存储引擎
      • 雷竞技下载官网Percona TokuBackup
      • 发行说明索引
      • 雷竞技下载官网Percona Server for MySQL 8.0.32-24 (2023-03-20)
      • 雷竞技下载官网Percona Server for MySQL 8.0.31-23 (2023-02-09)
      • 雷竞技下载官网Percona Server for MySQL 8.0.30-22 Update (2022-11-21)
      • 雷竞技下载官网Percona Server for MySQL 8.0.30-22 (2022-11-21)
      • 雷竞技下载官网Percona Server for MySQL 8.0.29-21 (22-08-08)
      • 雷竞技下载官网Percona Server for MySQL 8.0.28-20 (2022-06-20)
      • 雷竞技下载官网Percona Server for MySQL 8.0.28-19 (2022-05-12)
      • 雷竞技下载官网Percona Server for MySQL 8.0.27-18 (2022-03-02)
      • 雷竞技下载官网Percona Server for MySQL 8.0.26-17 (2022-01-26)
      • 雷竞技下载官网Percona Server for MySQL 8.0.26-16 (2021-10-20)
      • 雷竞技下载官网Percona Server for MySQL 8.0.25-15 (2021-07-13)
      • 雷竞技下载官网Percona Server for MySQL 8.0.23-14 (21-05-12)
      • 雷竞技下载官网Percona Server for MySQL 8.0.22-13 (2020-12-14)
      • 雷竞技下载官网Percona Server for MySQL 8.0.21-12 (2020-10-13)
      • 雷竞技下载官网Percona Server for MySQL 8.0.20-11 (2020-07-21)
      • 雷竞技下载官网Percona Server for MySQL 8.0.19-10 (2020-03-23)
      • 雷竞技下载官网Percona Server for MySQL 8.0.18-9
      • 雷竞技下载官网Percona Server for MySQL 8.0.17-8
      • 雷竞技下载官网Percona Server for MySQL 8.0.16-7
      • 雷竞技下载官网Percona Server for MySQL 8.0.15-6
      • 雷竞技下载官网Percona Server for MySQL 8.0.15-5
      • 雷竞技下载官网Percona Server for MySQL 8.0.14
      • 雷竞技下载官网Percona Server for MySQL 8.0.13-4
      • 雷竞技下载官网Percona Server for MySQL 8.0.13-3
      • 雷竞技下载官网Percona Server for MySQL 8.0.12-2rc1
      • Percona Server for MySQL 8.0中引入的雷竞技下载官网变量列表
      • MySQL的Percona S雷竞技下载官网erver开发
      • 商标政策
      • INFORMATION_SCHEMA表索引
      • 常见问题
      • 版权和授权信息
      • 术语表

    • 优先级连接调度
      • 低优先级队列节流
    • 处理长时间网络等待
    • 版本相关信息
    • 系统变量
      • thread_pool_idle_timeout
      • thread_pool_high_prio_mode
      • thread_pool_high_prio_tickets
      • thread_pool_max_threads
      • thread_pool_oversubscribe
      • thread_pool_size
      • thread_pool_stall_limit
      • 从8.0.14之前的版本升级到8.0.14或更高版本
      • extra_port
      • extra_max_connections
    • 状态变量
      • Threadpool_idle_threads
      • Threadpool_threads
    • 其他阅读

    线程池¶

    MySQL每个客户端连接使用一个线程执行语句。一旦连接数增加到超过某一点,性能就会下降。

    该特性通过引入动态线程池,使服务器即使在有大量客户端连接的情况下也能保持最佳性能。通过使用线程池服务器可以减少线程的数量,从而减少上下文切换和热锁争用。使用线程池将具有最大的效果OLTP工作负载(相对较短的cpu限制查询)。

    以便启用线程池变量thread_handling应该设置为的线程池价值。这可以通过添加:

    thread_handling =的线程池

    尽管线程池的默认值应该能够提供良好的性能,但是可以使用动态系统变量执行额外的调优。

    请注意

    当前线程池的实现是在服务器中构建的,不像上游版本是通过插件实现的。实现的另一个重要区别是,该实现没有尝试最小化并发事务的数量MySQL企业线程池.由于这些差异,此实现与上游版本不兼容。

    优先级连接调度¶

    尽管线程池限制了并发运行的查询的数量,但打开的事务的数量可能仍然很高,因为已经启动事务的连接被放到队列的末尾。较高的打开事务数对当前运行的查询有许多影响。提高新性能thread_pool_high_prio_tickets变量已经被引入。

    该变量控制高优先级队列策略。为每个新连接分配这么多票以进入高优先级队列。当一个查询因为没有可用线程而不得不排队等待稍后执行时,如果满足以下条件,线程池就会将该连接放入高优先级队列:

    • 连接在服务器中有一个打开的事务。

    • 此连接的高优先级票据的数量非零。

    如果上述两个条件都成立,则将该连接放入高优先级队列,并且其tickets值递减。否则,连接将使用此选项指定的初始票据值放入公共队列。

    每次线程池寻找要处理的新连接时,它首先检查高优先级队列,只有当高优先级队列为空时才从公共队列中选择连接。

    目标是最小化服务器中打开的事务的数量。在许多情况下,让短时间运行的事务有机会更快地提交,从而释放服务器资源和锁,而不必与即将启动新事务的其他连接或已耗尽高优先级票据的其他连接在同一个队列中等待,这是有益的。

    默认的线程池行为是始终将已经启动的事务中的事件放入高优先级队列,因为我们相信在绝大多数情况下这样做会带来更好的性能。

    价值是0,所有的连接总是放入公共队列,即没有优先级调度使用的原始实现MariaDB.该值越高,每个事务进入高优先级队列并在放入公共队列之前提交的机会就越多。

    在某些情况下,需要对特定连接的所有语句进行优先级排序,而不管它们是作为多语句事务的一部分执行还是以自动提交模式执行。反之亦然,有些连接可能要求对所有语句无条件地使用低优先级队列。要实现这个新的thread_pool_high_prio_mode中引入了变量雷竞技下载官网用于MySQL的Percona服务器.

    低优先级队列节流¶

    有一种情况可能会限制线程池性能,甚至在高并发性下导致死锁,即由于活动线程达到了超额订阅限制而导致线程组超额订阅,但所有/大多数工作线程实际上都在等待当前由来自另一个当前不在线程池中的连接的事务持有的锁。

    在这种情况下,池中那些已将自己标记为非活动的线程没有计入超额订阅限制。结果,池中的线程数量(包括活动线程和等待线程)会不断增加,直到到达thread_pool_max_threads价值。如果执行持有锁的事务的连接设法在此之前进入线程池,我们将得到一个大的(取决于线程池的大小)线程池thread_pool_max_threads值)并发运行的线程数,因此性能不佳。否则,就会出现死锁,因为不能创建更多的线程来处理这些事务并释放锁。

    当工作线程总数(包括活动线程和等待线程)达到超额订阅限制时,可以通过限制低优先级队列来防止这种情况。也就是说,如果工作线程太多,则不要启动新事务并创建新线程,直到已经启动的事务中的排队事件被处理。

    处理长时间网络等待¶

    某些类型的工作负载(大结果集、blob、慢客户机)在网络I/O(套接字读写)上有较长的等待时间。当服务器等待时,这应该与线程池通信,因此它可以通过唤醒等待线程或有时创建一个新线程来启动新的查询。此实现已从MariaDB补丁mdev - 156。

    版本相关信息¶

    • 8.0.12-1:线程池特性是从雷竞技下载官网用于MySQL的Percona服务器5.7.

    系统变量¶

    thread_pool_idle_timeout¶

    选项 描述
    命令行: 是的
    配置文件: 是的
    范围: 全球
    动态: 是的
    数据类型: 数字
    默认值: (60秒)

    此变量可用于限制空闲线程退出前应该等待的时间。

    thread_pool_high_prio_mode¶

    选项 描述
    命令行: 是的
    配置文件: 是的
    范围: 全球、会话
    动态: 是的
    数据类型: 字符串
    默认值: 交易
    允许的值: 交易,语句,没有一个

    此变量用于对全局或每个连接的高优先级调度提供更细粒度的控制。

    允许设置如下值:

    • 交易(默认)。在这种模式下,只有来自已经启动的事务的语句可以进入高优先级队列,这取决于连接中当前可用的高优先级票据的数量(请参阅thread_pool_high_prio_tickets)。

    • 语句.在这种模式下,所有单独的语句都进入高优先级队列,而不管连接的事务状态和可用的高优先级票据的数量。此值可用于确定优先级自动提交事务或其他类型的语句,例如针对特定连接的管理语句。注意,全局设置这个值实际上禁用了高优先级调度,因为在这种情况下,来自所有连接的所有语句将使用单个队列(高优先级队列)。

    • 没有一个.此模式禁用连接的高优先级队列。一些连接(例如监控)可能对执行延迟不敏感,并且raybet雷竞技竞猜在线官网/或从未分配任何服务器资源,否则将影响其他连接的性能,因此,实际上不需要高优先级调度。注意,将thread_pool_high_prio_mode设置为没有一个全局与设置为基本上具有相同的效果语句全局:所有连接将始终使用单个队列(在本例中是低优先级队列)。

    thread_pool_high_prio_tickets¶

    选项 描述
    命令行: 是的
    配置文件: 是的
    范围: 全球、会话
    动态: 是的
    数据类型: 数字
    默认值: 4294967295

    该变量控制高优先级队列策略。为每个新连接分配这么多票以进入高优先级队列。将此变量设置为0将禁用高优先级队列。

    thread_pool_max_threads¶

    选项 描述
    命令行: 是的
    配置文件: 是的
    范围: 全球
    动态: 是的
    数据类型: 数字
    默认值: 100000

    此变量可用于限制池中的最大线程数。一旦达到这个数字,就不会创建新的线程。

    thread_pool_oversubscribe¶

    选项 描述
    命令行: 是的
    配置文件: 是的
    范围: 全球
    动态: 是的
    数据类型: 数字
    默认值: 3.

    该参数的值越高,可以同时运行的线程就越多,如果该值低于3.这可能会导致更多的睡眠和醒来。

    thread_pool_size¶

    选项 描述
    命令行: 是的
    配置文件: 是的
    范围: 全球
    动态: 是的
    数据类型: 数字
    默认值: 处理器数量

    此变量可用于定义同时可以使用CPU的线程数。

    thread_pool_stall_limit¶

    选项 描述
    命令行: 是的
    配置文件: 是的
    范围: 全球
    动态: 没有
    数据类型: 数字
    默认值: 500(女士)

    正在运行的线程被认为停止前的毫秒数。当达到此限制时,线程池将被唤醒或创建另一个线程。这用于防止长时间运行的查询独占池。

    从8.0.14之前的版本升级到8.0.14或更高版本¶

    从8.0.14开始,雷竞技下载官网用于MySQL的Percona服务器使用admin_port的上游实现。的变量extra_port而且extra_max_connections已删除且不支持。这是必要的去除extra_port而且extra_max_connections在尝试从8.0.14之前的版本升级到雷竞技下载官网用于MySQL的Percona服务器8.0.14或更高版本。否则,服务器将报错,拒绝启动。

    另请参阅

    MySQL文档:

    • admin_port

    extra_port¶

    选项 描述
    命令行: 是的
    配置文件: 是的
    范围: 全球
    动态: 没有
    数据类型: 数字
    默认值: 0

    中删除了变量雷竞技下载官网Percona Server for MySQL 8.0.14.此变量可用于指定一个附加端口雷竞技下载官网用于MySQL的Percona服务器我会听的。当所有工作线程都处于繁忙或锁定状态时,可以使用这种方法来防止无法建立新的连接的线程池启用特性。要连接到额外的端口,可以使用以下命令:

    mysql——港口=“extra-port-number”——协议=tcp

    extra_max_connections¶

    选项 描述
    命令行: 是的
    配置文件: 是的
    范围: 全球
    动态: 没有
    数据类型: 数字
    默认值: 1

    中删除了变量雷竞技下载官网Percona Server for MySQL 8.0.14.此变量可用于指定允许的最大连接数加上一个额外的连接数超级extra_port上的用户连接。这可以与extra_port变量一起使用来访问服务器,以防由于所有工作线程繁忙或被锁定而无法建立新的连接的线程池启用特性。

    状态变量¶

    Threadpool_idle_threads¶

    选项 描述
    范围: 全球
    数据类型: 数字

    这个状态变量显示池中空闲线程的数量。

    Threadpool_threads¶

    选项 描述
    范围: 全球
    数据类型: 数字

    这个状态变量显示池中的线程数。

    其他阅读¶

    • MariaDB 5.5中的线程池

    • 线程池在Oracle MySQL中的实现

    联系我们

    如需免费技术帮助,请访问Percona雷竞技下载官网社区论坛.

    要报告错误或提交功能请求,请打开JIRA票。

    付费支持而且管理或咨询服务,请联系雷竞技下载官网Percona销售.


    最近更新:2023-01-12
    雷竞技下载官网Percona LLC和/或其关联公司©2023
    用MkDocs材料

    饼干的同意

    我们使用cookie来识别您的重复访问和偏好,以及衡量我们文档的有效性,以及用户是否找到他们正在搜索的内容。在您的同意下,您正在帮助我们改进我们的文档。

    Baidu
    map