我有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個非睡眠狀態嗎? –