
【问题背景】业务使用云上cvm连接云数据库MySQL执行select 1耗时异常,正常耗时都为0,异常达到0.3-0.5之间,这里我先使用云数据库智能管家DBbrain,诊断并未发现明显异常。那这里还有可能是网络层面的问题,MySQL侧的抓包需要腾讯的售后同学协助,腾讯云同学给到说明是MySQL的回包延迟,让关闭线程池thread_handling=one-thread-per-connection。
这里也总结下线程池的作用和常见开启和关闭的场景:
MySQL线程池(Thread Pool)是一种优化高并发连接的机制,主要用于解决传统"one-thread-per-connection"模式在高并发场景下的性能问题:
[mysqld]thread_handling=pool-of-threads # 启用线程池
thread_handling=one-thread-per-connection # 关闭线程池
thread_pool_size:线程组数量(默认等于CPU核心数)thread_pool_max_threads:最大工作线程数(默认100000)thread_pool_stall_limit:线程被标记为停滞前的微秒数(默认500ms)thread_pool_high_priority_connection:高优先级连接数(默认0)thread_pool_prio_kickup_timer:低优先级任务升级等待时间(默认1000ms)thread_pool_idle_timeout:空闲线程超时时间(默认60秒)thread_pool_oversubscribed:过载状态计数器thread_pool_active_threads:当前活动线程数最佳实践是在测试环境中模拟生产负载,比较两种模式的性能表现后再做决定。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。