2012-08-13 6 views
2

프로덕션 서버에 PostgreSQL 9.1 서버를 설치했습니다. 시스템에 따라 모든 구성 (postgresql.conf)이 변경되었습니다.PostgreSQL 데이터베이스 속도 저하

모든 것이 일주일 동안 잘 작동합니다.

갑자기 postgresql 서버가 매우 느려집니다. 테이블의 개수 (*) 쿼리조차. 너무 많은 시간이 걸립니다. 시스템에

  1. 모니터로드 :

    이 후 나는 같은 많은 활동을 수행 한 - 0.5 ~ 1.5 범위 내에서 정상. (200) 일반 (400)

  2. 다시 색인

  3. 이상적인 거래를 죽여 - :

  4. 사용자의 어떠한 응용 프로그램에 로그인 한 모니터하지 않습니다.

  5. 확인 잠금 (찾을 수 없음 교착 상태)

  6. 응용 프로그램 서버가 다시 시작됩니다.

  7. 데이터베이스 서버가 다시 시작되었습니다.

이 모든 작업을 수행 한 후에 데이터베이스 서버의 성능이 향상되지 않습니다.

일반 검색어의 경우 너무 많은 시간이 걸립니다.

는 다음 나는 데이터베이스를 삭제하고 실적 증가 데이터베이스를 다시 후 작업

모두를 다시.

그러나 며칠 후 갑자기 성능이 저하됩니다.

+1

http://www.postgresql.org/docs/9.1/static/app-vacuumdb.html? –

답변

2

데이터베이스의 활성 부분이 캐시 크기에 맞지 않아서 많은 디스크 읽기에 실제 디스크 액세스가 발생하는 것처럼 들립니다. 이것은 종종 공격적으로 충분히 진공 청소기로 닦지 않아서 발생합니다.

다른 요소는 PostgreSQL 및 운영 체제의 구성과 관련 될 수 있습니다. 그것은 알지 못하는 많은 조언을 제공하기 어렵다 :

  • 정확하게, 당신은 PostgreSQL을이 방법

  • (9.1 우리에게 주요 릴리스하지만 마이너 릴리스 때로는 문제를 알려줍니다)의 PostgreSQL 버전을 사용하고있는 당신이 실행중인 OS

  • ,

  • 구성, 당신은 (코어, RAM, 드라이브 어레이, 컨트롤러) 등을 사용하고있는 하드웨어그

부분이 페이지에 쿼리를 실행의 결과를 게시하여 제공 할 수 있습니다 :

http://wiki.postgresql.org/wiki/Server_Configuration

또한 대한 pg_class에서 relname, relpages 및 reltuples을 선택하는 데 도움이 될 관계가있는 테이블은 상황이 저조 할 때까지 잘 돌아갈 때 숫자를 비교합니다.

추가 정보를 통해 사람들은 매우 구체적인 권장 사항을 작성할 수 있습니다.