第六届全球数据库大赛:PolarDB TPC-C性能优化挑衅赛方案分享(二)--线程
<hr> 前言接上篇,完成参数调优后,warehouse数提升到了1600,此时碰到了性能瓶颈。当warehouse凌驾1600时,TPCC压测时会报错:Benchmark Not Active for 10 seconds,为什么呢?这时候我们就需要分析一下数据库的线程调理方法。
<hr> 一、线程调理方法
https://i-blog.csdnimg.cn/direct/a34504e5f9274c87905b11ed1237e954.png#pic_center
我们先来看看MySQL数据库的线程调理方法,主要有3种:
1、主线程处理处罚全部连接,这是调试模式。
2、每个连接创建一个线程,这种环境下实现简单,适用于一样平常使用场景,但是当连接数很多时,肯定带来性能瓶颈。由于操纵体系需要为每个线程分配一个线程堆栈,一样平常为几M,可以配置,当连接数很多时,线程堆栈所占的内存也不小,导致体系资源紧张。
3、线程池,线程池在mysql社区版本没有,只在商用版本才有。
我们现在使用的就是第2种,以是1600个warehouse就需要16000个连接线程,线程数太多导致体系内存不敷,继而导致数据库崩溃,压测程序10秒没有连接到数据库,以是报错。此时只有调低innodb缓冲区巨细才行,但是tpmc就降落了。以是这时就必须增长线程池了。
二、线程池框架
下图就是数据库的线程池框架
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]