해결 could not obtain a connection from the pool within 5.000 seconds

1710 단어 Railspooltech
안녕하세요.저는 HANOWA에서 개발한 한하강입니다.
HANOWA는 백엔드에서 Rails를 사용합니다.마침 1년 전, Rails의 캐치 기능이 사용자의 상세한 페이지에서 실현되었다.이를 통해 사용자의 데이터를 매번 로드하지 않도록 DB 접근의 부하, 연결 수를 줄이고 응답 속도를 높여 UX를 향상시켰다.그러나 캐시를 사용하면 과거 데이터를 업데이트할 수 없었던 고장이 발생하고 안전성 문제로 캐시 기능이 취소됩니다.그때 could not obtain a connection from the pool within 5.000 seconds라는 오류를 당했기 때문에 그 해결책을 공유한다.

까닭


잘못된 내용처럼 pool 수가 부족해서 대기 시간이 생겼어요. 타임아웃이 했어요.
마침 1년 전에 현금 기능을 만들었어요.이후 HANOWA의 서비스는 급속히 성장했고 사용자 방문량이 증가했으며 RDS와 동시에 연결 수도 증가했지만 캐시가 데이터 불러오는 빈도를 줄였다.성장한 후 갑자기 캐시를 꺼내서 could not obtain a connection from the pool within 5.000 seconds 발생한 것으로 여겨졌다.

해결책


rails 패키지입니다.10에서 20으로 증가하다.
database.yml
default: &default
  ...
  - pool: 10
  + pool: 20

그 다음


pool 수가 증가하여 RDS로 통하는 연결 수가 증가하였다.
RDS 클래스의 최대 연결 수를 확인하고 pool을 조정하십시오.

HANOWA에서 개발하고 싶은 분들께.


개발자 모집 중!
https://hanowa.notion.site/HANOWA-3de64d08c691447caa55c4c88a0f7ea6

좋은 웹페이지 즐겨찾기