sysbench的threads参数与MySQL的thread_pool_size是否类似?
sysbench --threads 参数与 MySQL thread_pool_size 的区别
我用sysbench测试MySQL集群,目的是确定最大线程数的最优设置。测试过程中了解到sysbench的--threads=N参数,同时接触到MySQL线程池里的thread_pool_size参数——这个参数指线程池中的线程组数量,是控制线程池性能的核心参数。我想请教:sysbench的threads参数和MySQL的thread_pool_size是否类似?
附上我使用的测试命令:
sysbench oltp_read_write.lua --threads=26 --time=30 --mysql-user='root' --mysql-password='password' --table-size=10000 --mysql-host=10.100.100.64 --mysql-port=6033 run
两者完全不是同一类参数,作用层面和目标天差地别:
- sysbench --threads:控制的是压测工具本身发起并发请求的线程数,说白了就是模拟多少个客户端同时给MySQL发请求。比如你设成26,就是26个并发客户端同时压测,属于压测工具的并发控制参数,和MySQL自身配置没关系。
- MySQL thread_pool_size:是MySQL服务器端线程池的线程组数量,属于数据库内部的资源调度配置。它是MySQL用来处理请求的线程分组数量,目的是优化服务器端的线程调度效率,避免过多线程导致的上下文切换开销,属于数据库服务端的性能调优参数。
打个直白的比方:sysbench的threads是“有多少人同时敲门”,MySQL的thread_pool_size是“屋里安排了多少组接待人员来开门处理”,一个是外部请求量级,一个是内部处理能力的调度配置。
内容的提问来源于stack exchange,提问作者Amix
相关产品推荐
相关产品推荐

