나는 max_connections = 1000의 mariadb를 가지고있다. 애플리케이션 스택은 데이터베이스에 450 개의 연결을 열었으며 매우 동시 적으로 설계되었다. 작업량은 대부분 INSERT/UPDATE입니다. 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-another-field-in-mysql-is-sporadically-slow) . 하지만 시간이 거의 0이되는 경우는 드뭅니다. 대부분 빠릅니다. 어떤 상태도 잠겨 있음, Init 또는 NULL 만 나타남 –
수면 상태가 아닌 상태에서 11보다 더 자주 나타 납니까? –