유휴 연결이 너무 많으면 PostgreSQL 9.2 성능에 영향을 줄 수 있습니까?


8

데이터베이스 서버의 일부 쿼리가 응답하는 데 시간이 오래 걸리고 CPU 사용량이 높다고 생각합니다. 을 실행할 때 ps aux~ 250 "유휴"연결이 보입니다 (너무 많은 것으로 생각합니다). 나는 완전한 진단을 시작하지는 않았지만 이것이 시작하기에 좋은 장소인지 알고 싶었습니다.

또한 트랜잭션 수준 풀링과 함께 PgBouncer를 사용하고 있습니다. idle풀 크기를 조정하여 연결 수를 쉽게 줄일 수 있다고 생각 합니다. 그러나 그럴만한 이유가 없으면 너무 많은 변경을 시작하고 싶지 않습니다.

idlePostgreSQL 9.2의 많은 연결이 성능에 영향을 줄 수 있습니까?

매우 감사합니다!


"너무 많은 유휴 연결"이란 무엇입니까? 수십? 수백?
jap1968

질문을 수정했습니다. 이것을 지적 해 주셔서 감사합니다. 명확히하기 위해, 마지막 수는 ~ 250입니다
Juan Carlos Coto

아마도? Oracle DBA는 개발 데이터베이스가 매우 느리게 실행되기 시작했을 때 모든 창에 새 세션 대신 모든 창에 단일 세션을 사용하도록 개발자 도구를 설정하도록 요청했습니다. "너무 많은"것으로 계산되는 정확한 숫자는 데이터베이스에 사용 가능한 리소스에 따라 다를 수 있습니다.
FrustratedWithFormsDesigner

답변:


3

유휴 연결이 문제인지 의심합니다. PostgreSQL은 리소스가 거의 없기 때문에 유휴 세션을 처리 할 수 ​​있습니다. 반면에 활동적인 세션은 속도 저하의 원인 일 가능성이 훨씬 높습니다.

데이터베이스 연결 수에 대한 참조는 https://wiki.postgresql.org/wiki/Number_Of_Database_Connections 를 참조 하십시오 .


커밋되지 않은 트랜잭션이있는 유휴 세션은 종종 나쁜 범인입니다!
Philᵀᴹ

필자는 필자가 PostgreSQL에 관한 것이 아니라 클라이언트 쪽이 작성되는 방법에 대해 자세히 설명합니다 (필자가없는 경우가 아니라면).
Max Vernon

이에 대한 관련 질문을 참조하십시오 . 당신이 그것에 투구하면 정말 도움이 될 것입니다. 감사!
Juan Carlos Coto

실제로 유휴 연결에는 많은 (메모리) 오버 헤드가 발생하지 않으며 피해야합니다 (연결 당 약 10MB를 할당하므로 최소 2.5GB의 메모리를 낭비한다고 생각합니다)
Kedare

1
@MaxVernon-실행중인 postgresql 9.5 서버에서 RES 열에 대해 25 개의 유휴 프로세스가 있습니다. 프로세스는 평균 약 12MB입니다 (범위 : 4.5MB-584MB, 더 큰 프로세스는 커밋되지 않은 tx를 가지고 있습니다).
cerd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.