我有max_connections = 1000的mariadb。应用程序堆栈打开450个连接到数据库,它被设计为高度并发。工作量主要是INSERT/UPDATEs。当通过show processlist进行监控时,我注意到同时在数据库中执行的活动查询不超过11个。我认为在我的情况下,一些mysql设置阻止了更多的并发性,但我无法弄清楚它们是什么。控制并发性的mysql参数集是完全混淆的,很难看到其中的清晰度。我有这个:在MySQL中如何控制会话并发性?
MariaDB [(none)]> show variables like '%concurr%';
+----------------------------+--------+
| Variable_name | Value |
+----------------------------+--------+
| concurrent_insert | ALWAYS |
| innodb_commit_concurrency | 0 |
| innodb_concurrency_tickets | 5000 |
| innodb_thread_concurrency | 32 |
| thread_concurrency | 10 |
+----------------------------+--------+
24个缓冲池实例,每个实例2GB和慢速GCP SSD永久磁盘。
最后一个参数折旧(基于我的研究)。应该改变什么来提高mysql的并发性?
有意想不到的延迟(我有单独的问题在这里:https://stackoverflow.com/questions/45764963/table-update-on-pk-and-otherother-field-in-mysql-is-sporadically-slow) 。但我很少看到时间> 0。它大多数很快。没有状态显示锁定,只有初始化或NULL –
你经常看到超过11个非睡眠状态吗? –