多条sql并发执行时,在前期,集群为每个sql分配了一定数量的线程数,但分配给每个sql不会超过parallel_degree设置的数量,总数量不会超过线程池数量;在多个sql同时执行开始时,各sql之间会争抢线程,最初争抢到几个线程,那么该sql会一直保持这个线程资源执行下去,在其他sql执行完毕释放出空闲的线程后,未执行完毕的sql也不会再重新分配闲置资源。在这种机制下,争抢资源少的sql,最终执行时间将会拖延整体并发执行时间。
相关参数调整建议:
gbase_parallel_degree 默认为线程池最大可用线程数。
gbase_parallel_max_thread_in_pool 线程池最大线程个数,默认为cpu核数。
调整为:
gbase_parallel_degree=32 --CPU核数
gbase_parallel_max_thread_in_pool=192 --CPU核数*sql并发个数
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




