문제

나는 현재 2 개의 인덱스와 2 억 5 천만 개의 활성 행과 대략 많은 죽은 줄 (또는 그 이상)의 테이블을 정리하고 있습니다. 클라이언트 컴퓨터 (노트북)에서 서버로 명령 VACCUM Full Analyze를 발행했습니다. 지난 3-4 일 정도의 사업에 대한 사업이 진행되고 있습니다. 나는해야 할 일이 많기 때문에 곧 끝날지 궁금합니다!

서버에는 쿼드 코드 Xeon 2.66 GHz 프로세서, 12GB 또는 RAM 및 RAID 1 구성에 2 x 10K RPM 146 GB SAS HD에 연결된 RAID 컨트롤러가 있습니다. Suse Linux를 실행하고 있습니다. 궁금...

이제 우선 진공 우체국 장 마스터 프로세스는 하나의 핵심 만 사용하는 것 같습니다. 둘째, 나는 매우 높은 I/O가 I/O 유휴 시간 비율에 쓰는 것을 보지 못합니다. 셋째, 전화로 procinfo, 진공 과정이 대부분의 시간 (88%)이 I/0을 기다리는 것을 추정 할 수 있습니다.

그렇다면 RAID 컨트롤러를 과부하시키기 위해 스레드를 통해 더 많은 코어를 사용하지 않는 이유는 무엇입니까 (높은 I/O가 유휴 비율로 작성)? I/O 부하가 높지 않으면 왜 I/O를 기다리고 있습니까? 이 모든 전원/자원으로 손가락으로 더 빠르게 진행되지 않는 이유는 무엇입니까? 진공 청소기는 특히 거대한 테이블에서 작업하고있는 경우 유일한 일인 경우 진공이 멀티 스레드가 될 수있는 것 같습니다!

또한, PostgreSQL.conf를 구성하여 그러한 진공을 멀티 스레드하도록하는 방법은 무엇입니까? 내가 그것을 죽일 수 있고 여전히 부분 정화로부터 혜택을받을 수 있습니까? 그 테이블에서 작업해야합니다.

PostgreSQL 8.1을 사용하고 있습니다

다시 thx

도움이 되었습니까?

해결책

당신은 어떤 버전의 PostgreSQL을 사용하고 있는지 말하지 않습니다. 8.0 이전 일 가능성이 있습니까?

나는이 똑같은 시나리오를 가졌다. 당신의 최고 :

  • 진공 청소기를 죽이십시오
  • pg_dump -t 옵션으로 테이블을 백업하십시오
  • 테이블을 떨어 뜨립니다
  • 테이블을 복원하십시오

8.x를 사용하는 경우 Autovacuum 옵션을보십시오. 진공 청소기는 단일 스레드이며 여러 스레드를 사용하도록 할 수있는 일은 없습니다.

다른 팁

몇 가지 빠른 팁 :

  • 무슨 일이 일어나고 있는지 알 수 있도록 진공을 완전하게 실행하십시오.
  • 진공 전에 모든 지수를 삭제하십시오. 진공 청소기보다 재건하는 것이 더 빠릅니다. 또한 진공 충만이 충분하지 않기 때문에 (특히 8.1과 같은 오래된 posgresql).
  • maintenance_work_mem을 실제로 설정하십시오.
  • 최신 PostgreSQL을 사용하십시오. BTW, 8.4는 진공 청소기가 크게 개선 될 것입니다.

진공의 대안은 덤프 및 복원입니다.

편집 : 9.0 진공 청소기 전체가 전체 테이블을 다시 작성합니다. 기본적으로 덤프 + 복원을 수행하는 것과 동일하므로 REINDEX를 실행하는 것은 불필요합니다.

테이블을 잠그고 진공이 작동하지 않도록 진행중인 것이 없다고 확신하십니까?

(어쨌든 사용하는 것이 가장 좋습니다 VACUUM_COST_DELAY 진공 청소기는 생산을 방해하지 않습니다.)

오래된 진공은 화석입니다. 그것은 또한 꽤 느리고 나중에 다시 린덱스를 얻었습니다. 사용하지 마십시오. 실제로 테이블을 디포하려면 클러스터를 사용하십시오.

lettssay 디스크 공간이 남아 있습니다. 덤프 및 재 장전보다 훨씬 빠릅니다.

CREATE TABLE newtable AS SELECT * FROM oldtable;
CREATE INDEX bla ON newtable( ... );
ALTER TABLE oldtable RENAME TO archive;
ALTER TABLE newtable RENAME TO oldtable;

이것은 당신의 제약 조건을 복사하지 않습니다. 당신은 창조 테이블을 사용하여 ... 복사 할 수 있습니다.

그래서 왜 스레드를 통해 더 많은 코어를 사용하지 않습니까?

PG는 이것을 지원하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top