PostgreSQL의 max_connections 및 pgbouncer의 default_pool_size를 계산하는 방법은 무엇입니까?

PostgreSQL의 max_connections 및 pgbouncer의 default_pool_size를 계산하는 방법은 무엇입니까?

max_connections, default_pool_size및 에 대한 적절한 숫자를 계산하는 데 사용할 수 있는 규칙이나 것이 있습니까 max_client_conn?

기본값은 이상합니다. PostgreSQL의 기본값은 max_connections=100이고 pgboucner의 기본값은 default_pool_size=20입니다. default_pool_size가 항상 max_connections보다 높아야 하지 않나요? 그렇지 않으면 요점이 무엇입니까? 나는 pgbouncer가 오버헤드를 낮춤으로써(PostgreSQL의 연결을 재사용함으로써) 더 많은 연결을 처리할 수 있게 해준다고 생각했습니다. 혼란스러워요.

나는 다음에서 찾은 것과 유사한 조언을 찾고 있습니다.PostgreSQL의 위키, "이 매개변수는 메모리의 ~50%여야 합니다."와 같습니다.

또한 이러한 종류의 매개변수를 계산할 수 있는 MySQL용 스프레드시트가 있었던 것을 기억합니다. PostgreSQL/pgbouncer에 그런 기능이 있으면 정말 좋을 것 같습니다.

답변1

default_pool_size는 항상 max_client_conn보다 작아야 합니다. max_client_connection은 애플리케이션과 pgbuffer 간의 소켓 연결 수입니다. default_pool_size는 pgbuffer와 db 간의 연결 수입니다.

따라서 트랜잭션을 풀 모드로 사용하는 경우 더 작은 default_pool_size를 더 많은 수의 클라이언트와 공유할 수 있습니다.

관련 정보