最近更新时间:2021-01-25 19:09:04
在大连接高并发场景下,MySQL性能会出现严重衰减,金山云KingSQL通过线程池功能,大幅提高在高并发场景下的处理效率,保障数据库高效稳定输出。
MySQL默认为一个连接创建一个线程,在大连接高并发场景下,会创建较多的工作线程,导致各线程互相竞争,CPU时间片在大量线程间频繁调度,上下文反复切换,造成较多的CPU资源消耗,严重降低MySQL吞吐。
KingSQL通过线程池,使工作线程和连接不再一一绑定,通过工作线程在连接间的复用,避免创建过多线程,始终将工作线程数控制在最佳线程数附近,从而在不影响中低并发处理效率的同时,大幅提高了高并发场景下的处理能力,同时给予DDL、监控信息查询等操作更高的优先级,确保在业务高负载时能够对数据库进行稳定的监控和管理维护工作。
实例版本为KingSQL内核版
如需升级,请联系客服。
参数配置
参数 | 含义及配置值 |
---|---|
thread_handling | 配置线程池选项 取值范围: pool-of-threads:开启线程池 one-thread-per-connection:一个连接一个线程 no-threads:一个线程处理所有请求 默认值:one-thread-per-connection |
threadpool_max_threads | 整个线程池最大线程数,总线程数超过此值时,不会再创建线程(极端场景除外) 取值范围:1 - 10000 默认值:10000 |
threadpool_idle_timeout | 工作线程空闲的超时时间,超过此时间会自动销毁 取值范围:1 - UINT_MAX 默认值:60 (秒) |
使用sysbench测试,结果如下
oltp_read_write、oltp_write_only
纯净模式