| PostgreSQL 9.1.24 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.1 : 비동기 스포츠 토토 결과 | 범퍼카 토토 : 문서 : 9.1 : 신뢰성 및 쓰기 로그 | 29장. 신뢰성 및 미리 쓰기 로그 | 스포츠 토토 : 문서 : 9.1 : Wal Internals | |
몇 가지가 있습니다토토 사이트: Documentation:관련 구성 매개변수 데이터베이스 성능에 영향을 미칩니다. 이 섹션에서는 그 사용법을 설명합니다. 문의18장일반용 서버 구성 매개변수 설정에 대한 정보입니다.
체크포인트점은 힙이 보장되는 트랜잭션 순서 및 인덱스 데이터 파일이 모든 정보로 업데이트되었습니다. 검문소 전에 작성되었습니다. 체크포인트 시점에는 모든 더티 데이터가 페이지는 디스크로 플러시되고 특수 체크포인트 레코드는 로그 파일에 기록됩니다. (변경 사항은 이전에 다음으로 플러시되었습니다.스포츠 토토 베트맨파일.) 이벤트에서 충돌이 발생한 경우 충돌 복구 절차는 최신 정보를 살펴봅니다. 로그의 지점을 확인하기 위한 체크포인트 기록( REDO 레코드) REDO 작업을 시작해야 합니다. 모두 해당 시점 이전에 데이터 파일에 적용된 변경 사항은 그대로 유지됩니다. 이미 디스크에 있습니다. 따라서 체크포인트 이후에 세그먼트를 기록합니다. 리두 레코드를 포함하는 것보다 앞선 것은 더 이상 필요하지 않습니다. 재활용하거나 제거할 수 있습니다. (언제스포츠 토토 베트맨보관이 완료되는 중입니다. 로그 세그먼트 재활용하거나 제거하기 전에 보관해야 합니다.)
모든 더티 데이터 페이지를 플러시하는 체크포인트 요구 사항 디스크로 인해 상당한 I/O 로드가 발생할 수 있습니다. 이런 이유로, 체크포인트 활동이 제한되어 I/O가 체크포인트에서 시작됩니다. 다음 체크포인트가 시작되기 전에 시작하고 완료합니다. 이 체크포인트 중 성능 저하를 최소화합니다.
서버의 백그라운드 작성기 프로세스가 자동으로 수행됩니다. 자주 체크포인트가 되기도 합니다. 체크포인트는 다음과 같이 생성됩니다.checkpoint_segments로그 세그먼트 또는 모든checkpoint_timeout초 중 먼저 오는 것. 기본 설정은 3입니다. 세그먼트와 300초(5분)입니다. 그것은 또한 SQL 명령을 사용하여 체크포인트를 강제 적용 가능체크포인트.
감소checkpoint_segments및/또는checkpoint_timeout체크포인트 원인 더 자주 발생합니다. 이를 통해 충돌 후 더 빠른 복구가 가능합니다(이후 다시 수행해야 하는 작업이 줄어듭니다.) 그러나 이 균형을 맞춰야 합니다. 더티 데이터 페이지를 플러시하는 데 드는 비용 증가에 대비 자주. 만약에full_page_writes이(기본값) 설정되어 있으면 고려해야 할 또 다른 요소가 있습니다. 데이터 페이지 일관성을 보장하기 위해 데이터의 첫 번째 수정은 각 체크포인트 이후의 페이지에서는 전체 페이지가 기록됩니다. 내용. 이 경우 체크포인트 간격이 짧아집니다. 스포츠 토토 베트맨 로그에 대한 출력량, 목표를 부분적으로 무효화 더 작은 간격을 사용하면 더 많은 디스크가 발생합니다. I/O.
체크포인트는 상당히 비쌉니다. 첫째, 필요하기 때문입니다. 현재 더티 버퍼를 모두 작성하고 두 번째 이유는 위에서 설명한 대로 추가 후속 스포츠 토토 베트맨 트래픽이 발생합니다. 그것은 그러므로 체크포인트 매개변수를 충분히 높게 설정하는 것이 현명합니다. 체크포인트는 너무 자주 발생하지 않습니다. 간단한 건강검진으로 체크포인트 매개변수에서 다음을 설정할 수 있습니다.체크포인트_경고매개변수. 체크포인트가 다음보다 더 가깝게 발생하는 경우체크포인트_경고초, 메시지는 다음과 같습니다 증가를 권장하는 서버 로그에 출력checkpoint_segments. 가끔 저런 모습이 나오네요 메시지는 경보의 원인이 아니지만 자주 나타나면 체크포인트 제어 매개변수를 늘려야 합니다. 대량 대형과 같은 작업복사이전 그렇지 않은 경우 이러한 경고가 여러 개 나타날 수 있습니다. 설정checkpoint_segments충분히 높습니다.
폭발적인 페이지 쓰기로 인해 I/O 시스템이 초과되는 것을 방지하려면, 체크포인트 중에 더티 버퍼를 쓰는 것은 일정 기간에 걸쳐 분산됩니다. 시간의. 해당 기간은 다음에 의해 제어됩니다.checkpoint_completion_target, 이는 체크포인트 간격의 일부로 제공됩니다. I/O 주어진 시간에 체크포인트가 완료되도록 속도가 조정됩니다. 의 일부checkpoint_segments스포츠 토토 베트맨 체크포인트 시작 이후 세그먼트가 소비되었거나 지정된 의 일부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개의 세그먼트 파일, 불필요한 세그먼트 파일은 재활용되는 대신 삭제됩니다. 시스템은 다시 이 제한 아래로 돌아갑니다.
아카이브 복구 또는 대기 모드에서는 서버가 주기적으로 수행한다다시 시작점비슷함 정상 작동 시 체크포인트로: 서버는 모든 상태를 디스크로 업데이트하고pg_control파일은 이미 처리된 스포츠 토토 베트맨 데이터가 필요하지 않음을 나타냅니다. 다시 스캔한 다음 이전 로그 세그먼트 파일을 재활용합니다.pg_xlog디렉토리. 재시작 지점은 다음과 같습니다. 하나 이상의 체크포인트 레코드가 재생된 경우 트리거됩니다.checkpoint_timeout초가 지났습니다 마지막 재시작 지점 이후. 대기 모드에서는 재시작 지점도 다음과 같은 경우에 트리거됨checkpoint_segments로그 마지막 재시작 시점 이후 세그먼트가 재생되었으며 최소한 하나의 체크포인트 레코드가 재생되었습니다. 다시 시작 지점은 다음과 같습니다. 마스터의 체크포인트보다 더 자주 수행됩니다. 재시작점은 체크포인트 레코드에서만 수행될 수 있습니다.
일반적으로 내부에서 사용되는 두 가지가 있습니다.스포츠 토토 베트맨기능:로그 삽입그리고로그플러시. 로그 삽입새 레코드를 배치하는 데 사용됩니다.스포츠 토토 베트맨공유된 버퍼
기억. 새 레코드를 위한 공간이 없는 경우,로그 삽입작성해야 합니다(커널로 이동)
캐시) 몇 개 채워짐스포츠 토토 베트맨버퍼. 이는 바람직하지 않습니다. 왜냐하면로그삽입모든 데이터베이스 하위 수준에서 사용됩니다.
수정(예: 행 삽입)
영향을 받은 데이터 페이지에 배타적 잠금이 유지되므로 작업이
최대한 빨리 해야 합니다. 더 나쁜 것은 글쓰기입니다.스포츠 토토 베트맨버퍼는 또한 강제로
새로운 로그 세그먼트 생성에는 훨씬 더 많은 시간이 소요됩니다.
일반적으로,스포츠 토토 베트맨버퍼는 다음과 같습니다
a에 의해 작성되고 플러시됩니다.로그플러시요청은 가장 많이 이루어진 것입니다.
부분적으로 트랜잭션 커밋 시간에 해당 트랜잭션을 보장합니다.
기록은 영구 저장소로 플러시됩니다. 높은 시스템에서
로그 출력,로그플러시요청은 다음과 같습니다.
예방할 만큼 자주 발생하지 않음로그삽입쓰기를 해야 하는 일로부터. 그런
시스템 수를 늘려야 합니다.스포츠 토토 베트맨구성을 수정하여 버퍼링
매개변수스포츠 토토 베트맨_buffers. 언제full_page_writes이 설정되어 있고 시스템이 매우 사용 중이므로 이 값을 더 높게 설정합니다.
해당 기간 동안 즉시 원활한 응답 시간을 제공하는 데 도움이 됩니다.
각 체크포인트를 따라가세요.
그commit_delay매개변수는 서버가 처리하는 마이크로초 수를 정의합니다.
다음을 사용하여 로그에 커밋 레코드를 쓴 후 절전 모드로 전환됩니다.로그삽입하지만 수행하기 전에로그플러시. 이 지연으로 인해 다른
서버 프로세스는 커밋 레코드를 로그에 추가하여
단일 로그 동기화로 모두 플러시합니다. 잠은 안 와
다음과 같은 경우에 발생합니다fsync입니다
활성화되지 않았거나 미만인 경우commit_siblings다른 세션이 현재 활성 트랜잭션에 있습니다. 이것은 피한다
다른 세션이 커밋될 가능성이 없을 때 잠자기
곧. 대부분의 플랫폼에서 수면 해결은
요청은 10밀리초이므로 0이 아닌 모든 것은commit_delay1에서 10000 사이의 설정
마이크로초도 같은 효과를 갖습니다. 이에 대한 좋은 가치
매개변수가 아직 명확하지 않습니다. 실험이 권장됩니다.
그스포츠 토토 베트맨_sync_method매개변수에 따라 방법이 결정됩니다.포스트그레SQL커널에 강제로 요청합니다와이즈 토토 : 문서디스크로 업데이트됩니다. 모두 옵션은 신뢰성 측면에서 동일해야 합니다. 예외fsync_writethrough, 때로는 다른 경우에도 디스크 캐시를 강제로 플러시할 수 있습니다. 옵션은 그렇지 않습니다. 그러나 이는 플랫폼에 따라 다릅니다. 하나가 가장 빠를 것입니다. 다음을 사용하여 옵션 속도를 테스트할 수 있습니다.pg_test_fsync모듈. 참고하세요 다음과 같은 경우 이 매개변수는 관련이 없습니다.fsync꺼졌습니다.
활성화 중스포츠 토토 베트맨_debug구성 매개변수(제공된 경우)포스트그레SQL지원되도록 컴파일되었습니다
이를 위해) 각 결과는 다음과 같습니다.로그 삽입그리고로그플러시 스포츠 토토 베트맨호출이 서버 로그에 기록됩니다. 이 옵션은 다음과 같습니다.
향후에는 보다 일반적인 메커니즘으로 대체됩니다.