현재 DISCOURSE_DB_POOL을 15로 설정해 두었고, Sidekiq 워커 2개 각각의 동시성(concurrency)은 10으로 설정되어 있습니다. Sidekiq 문서를 읽어본 결과, Sidekiq 스레드가 데이터베이스 풀을 공유하는 것으로 보이므로, Sidekiq 워커에서 발생하는 데이터베이스 연결의 최대치는 15 * 2 = 30개일 것으로 예상하고 있습니다. 그러나 이러한 이해에도 불구하고, 예상 최대치인 30개를 초과하는 데이터베이스 연결 스파이크가 관찰되고 있습니다.
우리는 연결 풀의 크기(PostgreSQL 앞에 있는 RDS 프록시)를 올바르게 설정하려고 합니다. 이를 위해 애플리케이션 측의 연결 풀링에 대한 더 나은 이해가 필요합니다. 왜 애플리케이션이 DISCOURSE_DB_POOL 설정을 예상대로 준수하지 않는 것일까요? DISCOURSE_DB_POOL이 예상대로 작동하고 있다면, 왜 DB 연결에서这么大的 스파이크가 발생하는 것일까요? 이러한 스파이크는 PeriodicalUpdates 예약 작업 실행 시점에 일치하는 것으로 보입니다.
추가로 궁금한 점이 있으시면 말씀해 주세요. 이 수수께끼를 풀어내는 데 도움을 주셔서 감사합니다.