이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 28.5. 메이저 무지개 토토 사이트 구성버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

29.4. 무지개 토토구성

몇 가지가 있습니다무지개 토토데이터베이스 성능에 영향을 미치는 관련 구성 매개 변수. 이 섹션에서는 사용을 설명합니다. 찾다18 장서버 구성 매개 변수 설정에 대한 일반 정보.

체크 포인트는 힙 및 인덱스 데이터 파일이 해당 체크 포인트 앞에 작성된 모든 정보로 업데이트되었음을 보장하는 일련의 트랜잭션의 포인트입니다. 체크 포인트 시간에 모든 더러운 데이터 페이지가 디스크로 플러시되고 특수 체크 포인트 레코드가 로그 파일에 기록됩니다. (변경 레코드는 이전에 <에 세척되었습니다.무지개 토토files.) 충돌이 발생하면 충돌 복구 절차는 최신 체크 포인트 레코드를보고 로그의 포인트 (Redo Record라고도 함)를 결정하여 다시 작업을 시작해야합니다. 해당 지점 이전의 데이터 파일에 대한 변경 사항은 이미 디스크에 보장됩니다. 따라서, 체크 포인트 후, 레다 레코드를 포함하는 로그 세그먼트는 더 이상 필요하지 않으며 재활용 또는 제거 할 수 있습니다. (언제무지개 토토아카이빙이 완료되고 있으며, 로그 세그먼트는 재활용되거나 제거되기 전에 보관해야합니다.)

모든 더러운 데이터 페이지를 디스크로 플러시하는 체크 포인트 요구 사항은 상당한 I/O로드를 유발할 수 있습니다. 이러한 이유로, 체크 포인트 활동은 조절되어 I/O가 Checkpoint 시작에서 시작하여 다음 체크 포인트가 시작되기 전에 완료되도록합니다. 이것은 체크 포인트 중 성능 저하를 최소화합니다.

서버의 체크 포인터 프로세스는 자주 검사 점을 자동으로 수행합니다. 체크 포인트가 시작됩니다Checkpoint_segments로그 세그먼트 또는 모든Checkpoint_Timeout초, 어느 쪽이든 먼저. 기본 설정은 각각 3 개의 세그먼트와 300 초 (5 분)입니다. 이전 체크 포인트 이후 무지개 토토이 작성되지 않은 경우, 새로운 체크 포인트가 건너 뜁니다.Checkpoint_Timeout통과했습니다. (무지개 토토 아카이브가 사용 중이고 잠재적 데이터 손실에 결합하기 위해 파일이 자주 보관되어 얼마나 자주 한계를두고 싶다면 조정해야합니다.archive_timeout체크 포인트 매개 변수가 아닌 매개 변수.) SQL 명령을 사용하여 체크 포인트를 강제 할 수도 있습니다Checkpoint.

감소Checkpoint_segments및/또는Checkpoint_Timeout체크 포인트가 더 자주 발생하게됩니다. 이를 통해 작업이 적은 작업이 적을 필요가 있기 때문에 더 빨리 충돌 후 복구를 가능하게합니다. 그러나 더러운 데이터 페이지를 플러시하는 비용 증가와 더 자주이를 균형을 유지해야합니다. 만약에full_page_writes(기본값과 마찬가지로), 고려해야 할 또 다른 요소가 있습니다. 데이터 페이지 일관성을 보장하기 위해 각 체크 포인트 후 데이터 페이지를 첫 번째 수정하면 전체 페이지 컨텐츠를 기록합니다. 이 경우 더 적은 체크 포인트 간격이 무지개 토토 로그에 대한 출력 부피를 증가시켜 부분적으로 더 작은 간격을 사용하는 목표를 부정하고, 어쨌든 더 많은 디스크 I/O..

체크 포인트는 상당히 비싸다. 먼저 현재 더러운 버퍼를 기록해야하기 때문에, 둘째는 위에서 논의한대로 후속 무지개 토토 트래픽을 초래하기 때문에 두 번째. 따라서 체크 포인트 매개 변수를 충분히 높게 설정하여 체크 포인트가 너무 자주 발생하지 않도록하는 것이 좋습니다. 체크 포인팅 매개 변수에 대한 간단한 정신 점검으로를 설정할 수 있습니다.Checkpoint_warning매개 변수. 체크 포인트가보다 더 가까워지면Checkpoint_warning초, 메시지가 서버 로그에 출력됩니다.Checkpoint_segments. 이러한 메시지의 경우 가끔 나타나는 것은 경보의 원인이 아니지만 자주 나타나면 체크 포인트 제어 매개 변수를 증가시켜야합니다. 대량과 같은 벌크 작업COPY전송으로 인해 설정하지 않은 경우 많은 경고가 나타날 수 있습니다Checkpoint_segments충분히.

페이지 쓰기가 버스트로 I/O 시스템에 침수를 피하기 위해 체크 포인트 중에 더러운 버퍼를 쓰는 것은 일정 기간에 걸쳐 퍼집니다. 그 기간은에 의해 제어됩니다.Checkpoint_Completion_TARGET, 이는 체크 포인트 간격의 일부로 제공됩니다. 주어진 비율의시 체크 포인트가 완료되도록 I/O 속도가 조정됩니다.Checkpoint_segmentswal 세그먼트는 체크 포인트 시작 이후 소비되거나 주어진 부분의Checkpoint_Timeout초가 경과했으며, 어느 쪽이든 더 빨리 경과했습니다. 기본값 0.5,PostgreSQL다음 체크 포인트가 시작되기 전에 각 체크 포인트를 절반으로 완료 할 수 있습니다. 정상 작동 중 최대 I/O 처리량에 매우 가까운 시스템에서는 증가하고 싶을 수도 있습니다Checkpoint_Completion_TARGET체크 포인트에서 I/O 부하를 줄이기 위해. 이에 대한 단점은 연장 된 체크 포인트가 복구 시간에 영향을 미친다는 것입니다. 더 많은 월 세그먼트가 복구에 사용할 수 있도록 보관해야하기 때문입니다. 하지만Checkpoint_Completion_TARGET는 1.0으로 높게 설정할 수 있습니다. 체크 포인트에는 더러운 버퍼를 쓰는 것 외에 다른 활동이 포함되어 있기 때문에 그보다 적게 유지하는 것이 가장 좋습니다 (최대 0.9). 1.0의 설정은 체크 포인트가 제 시간에 완료되지 않을 가능성이 높으므로 필요한 무지개 토토 세그먼트 수의 예상치 못한 변화로 인해 성능 손실이 발생합니다..

항상 하나 이상의 무지개 토토 세그먼트 파일이 있으며 일반적으로 (2 + 이상이 아닙니다.Checkpoint_Completion_TARGET) *Checkpoint_segments+ 1 또는Checkpoint_segments+무지개 토토_keep_segments+ 1 파일. 각 세그먼트 파일은 일반적으로 16MB입니다 (이 크기는 서버를 구축 할 때 변경 될 수 있음). 이것을 사용하여에 대한 공간 요구 사항을 추정 할 수 있습니다.무지개 토토. 일반적으로 이전 로그 세그먼트 파일이 더 이상 필요하지 않은 경우 재활용됩니다 (즉, 번호가 매겨진 시퀀스의 미래 세그먼트가되도록 이름이 바뀌 었습니다). 로그 출력 속도의 단기 피크로 인해 3 * 이상이있는 경우Checkpoint_segments+ 1 세그먼트 파일, 불필요한 세그먼트 파일은 시스템 이이 한계에 따라 다시 돌아올 때까지 재활용 대신 삭제됩니다.

아카이브 복구 또는 대기 모드에서 서버가 정기적으로 수행됩니다RETARTPOINTS, 정상 작동의 검문소와 유사한 : 서버는 모든 상태를 디스크로 강제하고 업데이트PG_CONTROL파일은 이미 처리 된 무지개 토토 데이터를 다시 스캔 할 필요가 없음을 나타내고의 이전 로그 세그먼트 파일을 재활용합니다.PG_XLOG디렉토리. 재시작 점은 체크 포인트 레코드에서만 수행 할 수 있기 때문에 마스터의 검문소보다 재시작소를 더 자주 수행 할 수 없습니다. 최소한 체크 포인트 레코드에 도달하면 다시 시작점이 트리거됩니다Checkpoint_Timeout마지막 재시작 지점 이후 몇 초가 지났습니다. 대기 모드에서는 최소한 재시작 포인트도 트리거됩니다Checkpoint_segments마지막 재시작 이후 로그 세그먼트가 재생되었습니다.

일반적으로 사용되는 두 가지가 있습니다무지개 토토기능 :xloginsertandxlogflush. xloginsert새 레코드를에 배치하는 데 사용됩니다.무지개 토토공유 메모리의 버퍼. 새 기록을위한 공간이 없다면xloginsert몇 가지 채워진 몇 가지를 써야합니다 (커널 캐시로 이동)무지개 토토버퍼. 이것은 바람직하지 않기 때문에xloginsert는 영향을받는 데이터 페이지에서 독점 잠금이 유지 될 때 모든 데이터베이스 저 레벨 수정 (예 : 행 삽입)에서 사용되므로 작업을 가능한 빨리 빠르게해야합니다. 더 나쁜 것은 글쓰기무지개 토토버퍼는 또한 새로운 로그 세그먼트의 생성을 강요 할 수 있으며, 이는 더 많은 시간이 걸립니다. 보통,무지개 토토버퍼를 작성하고 플러시해야합니다xlogflush트랜잭션 커밋 시간에서 트랜잭션 레코드가 영구적 인 스토리지로 플러시되도록하는 요청은 대부분입니다. 로그 출력이 높은 시스템에서xlogflush요청이 자주 발생하지 않을 수 있습니다xloginsert쓰기를해야합니다. 그러한 시스템에서는의 수를 늘려야합니다.무지개 토토수정하여 버퍼무지개 토토_buffers매개 변수. 언제full_page_writes설정되었고 시스템이 매우 바쁘고 설정무지개 토토_buffersHigher는 각 체크 포인트 직후 기간 동안 응답 시간을 원활하게하는 데 도움이됩니다.

theCommit_Delay매개 변수는 그룹 커밋 리더 프로세스가 자물쇠를 획득 한 후 잠을자는 마이크로 초에 대해 정의합니다xlogflush, 그룹 커밋 추종자들은 리더 뒤에서 대기합니다. 이 지연을 통해 다른 서버 프로세스는 Commit Records를 무지개 토토 버퍼에 추가하여 리더의 최종 동기화 작업에 의해 모두 플러시되도록합니다. 이면 수면이 발생하지 않습니다.fsync활성화되지 않았거나보다 적은 경우Commit_Siblings다른 세션은 현재 활성 거래 중입니다. 이것은 다른 세션이 곧 커밋 될 가능성이 낮은 경우 수면을 피합니다. 일부 플랫폼에서 수면 요청의 해상도는 10 밀리 초이므로 0이 아닌Commit_Delay1에서 10000 마이크로 초 사이의 설정은 동일한 효과를 갖습니다. 일부 플랫폼에서는 수면 작업이 매개 변수에서 요청한 것보다 약간 더 오래 걸릴 수 있습니다.

의 목적 이후Commit_Delay|는 거래 대기 시간을 희생시키면서 (잠재적으로 트랜잭션 대기 시간을 희생 시키면) 각 플러시 작업의 비용이 동시에 상각 할 수 있도록하는 것입니다. 설정을 지능적으로 선택하기 전에 해당 비용을 정량화해야합니다. 비용이 높을수록 더 효과적입니다Commit_Delay는 거래 처리량을 증가시킬 것으로 예상됩니다. 그만큼PostgreSQL : 문서프로그램을 사용하여 단일 무지개 토토 플러시 작업이 취하는 마이크로 초의 평균 시간을 측정 할 수 있습니다. 단일 8KB 쓰기 작업 후에 프로그램이 플러시하는 데 걸리는 평균 시간의 절반의 값은 종종 가장 효과적인 설정입니다Commit_Delay,이 값은 특정 워크로드를 최적화 할 때 사용할 시작점으로 권장됩니다. 조정하는 동안Commit_Delay무지개 토토 로그가 고지도 회전 디스크에 저장 될 때 특히 유용하며, 솔리드 스테이트 드라이브 또는 배터리에 접근 된 쓰기 캐시가있는 RAID 어레이와 같은 매우 빠른 동기화 시간이있는 스토리지 미디어에서도 이점이 중요 할 수 있습니다. 그러나 이것은 분명히 대표적인 워크로드에 대해 테스트해야합니다. 더 높은 값Commit_Siblings그러한 경우에 사용해야하는 반면Commit_Siblings값은 종종 높은 대기 시간 매체에 도움이됩니다. 의 설정이 가능하다는 점에 유의하십시오.Commit_Delay너무 높아서 총 트랜잭션 처리량이 어려움을 겪을수록 트랜잭션 대기 시간을 증가시킬 수 있습니다.

whenCommit_Delay|는 0으로 설정되어 있으며 (기본값), 그룹 커밋 형태가 여전히 발생할 수 있지만 각 그룹은 이전 플러시 작업 (있는 경우)이 발생하는 창에서 커밋 레코드를 플러시 해야하는 지점에 도달하는 세션만으로 구성됩니다. 더 높은 클라이언트에서는 A"Gangway Effect"발생하는 경향이 있으므로 그룹 커밋의 영향이 중요 해지도록Commit_Delay| 0이므로 명시 적으로 설정Commit_Delay덜 도움이되는 경향이 있습니다. 환경Commit_Delay(1) 동시에 거래하는 거래가 있고 (2) 처리량이 커밋 비율에 따라 어느 정도로 제한 될 때만 도움이 될 수 있습니다. 그러나 회전 대기 시간이 높으면이 설정은 두 명의 클라이언트 (즉, 한 형제 거래를 가진 단일 커밋 클라이언트)로 트랜잭션 처리량을 늘리는 데 효과적 일 수 있습니다..

무지개 토토_sync_method매개 변수 결정 방법PostgreSQL커널에 강제를 요청합니다무지개 토토디스크로 업데이트. 모든 옵션은 신뢰성 측면에서 동일해야합니다.fsync_writethrough, 다른 옵션이 그렇게하지 않더라도 디스크 캐시의 플러시를 강제 할 수 있습니다. 그러나 가장 빠른 플랫폼 특정입니다. 를 사용하여 다양한 옵션의 속도를 테스트 할 수 있습니다.PostgreSQL : 문서프로그램. 이 매개 변수는이라면 관련이 없습니다.fsync꺼졌습니다.

활성화무지개 토토_debug구성 매개 변수 (제공PostgreSQL지원을 통해 편집되었습니다) 각각xloginsertandxlogflush 무지개 토토서버 로그에 로그인하는 통화. 이 옵션은 향후보다 일반적인 메커니즘으로 대체 될 수 있습니다.