사설 토토 9.3.25 문서 | ||||
---|---|---|---|---|
PostgreSQL : 문서 : 9.3 : 비동기 스포츠 토토 | 사설 토토 : 문서 : 9.3 : 신뢰성과 쓰기 로그 | 29 장. 신뢰성 및 쓰기 전달 로그 | 스포츠 토토 : 문서 : 9.3 : Wal Internals |
몇 가지가 있습니다사설 토토-관련 데이터베이스 성능에 영향을 미치는 구성 매개 변수. 이것 섹션은 그들의 사용을 설명합니다. 찾다18 장일반 정보 서버 구성 매개 변수 설정
체크 포인트순서 지점입니다 힙과 색인이 보장되는 거래 데이터 파일은 이전에 작성된 모든 정보로 업데이트되었습니다. 그 검문소. 체크 포인트 시간에는 모든 더러운 데이터 페이지가 있습니다 디스크로 플러시되고 특수 체크 포인트 레코드가 로그 파일. (변경 레코드는 이전에 <에 세척되었습니다.사설 토토파일) a 충돌, 충돌 복구 절차는 최신 체크 포인트를 살펴 봅니다. 로그의 포인트를 결정하기위한 기록 (레디 레코드라고도 함) Redo 작업을 시작해야합니다. 모든 변경 사항 그 시점 이전의 데이터 파일은 이미 디스크에 보장됩니다. 따라서 체크 포인트 후에는 로그 세그먼트 앞에 로그 세그먼트가 있습니다 레다 레코드를 포함하는 것은 더 이상 필요하지 않으며 재활용 할 수 있습니다. 또는 제거. (언제사설 토토아카이빙 완료되고, 로그 세그먼트는 가기 전에 보관해야합니다. 재활용 또는 제거.)
모든 더러운 데이터 페이지를 플러시하는 체크 포인트 요구 사항 디스크는 상당한 I/O 하중을 유발할 수 있습니다. 이러한 이유로 체크 포인트 활동이 시작될 때 I/O가 시작되도록 활동이 조절됩니다. 다음 체크 포인트가 시작되기 전에 완료됩니다. 이것 체크 포인트 중 성능 저하를 최소화합니다.
서버의 체크 포인터 프로세스는 자동으로 수행됩니다 너무 자주 체크 포인트. 체크 포인트가 시작됩니다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전송으로 인해 a 설정하지 않은 경우 나타날 경고의 수Checkpoint_segments충분히.
페이지 쓰기가있는 I/O 시스템의 범람을 피하기 위해, 체크 포인트 중에 더러운 버퍼 쓰기는 일정 기간에 걸쳐 확산됩니다. 시간의. 그 기간은에 의해 제어됩니다.Checkpoint_Completion_TARGET, 체크 포인트 간격의 일부로 제공됩니다. I/O 주어진시 체크 포인트가 완료되도록 요율이 조정됩니다. 의 일부Checkpoint_segments사설 토토 체크 포인트 시작 또는 주어진 이후 세그먼트가 소비되었습니다. 의 일부Checkpoint_Timeout초 더 빨리 경과하셨습니다. 기본값 0.5,사설 토토다음 체크 포인트를 다음 체크 포인트를 다음에 절반으로 완료하십시오. 체크 포인트가 시작됩니다. 최대 I/O에 매우 가까운 시스템에서 정상 작동 중에 처리량이 증가하고 싶을 수도 있습니다checkpoint_completion_target체크 포인트에서 I/O로드. 이것의 단점은 그 것입니다 검사 점을 연장하는 것은 복구 시간에 영향을 미칩니다 회복에 사용할 수 있도록 세그먼트를 유지해야합니다. 하지만Checkpoint_Completion_TARGETcan 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디렉토리. 다시 시작 할 수는 없습니다 마스터의 체크 포인트보다 더 자주 수행됩니다 재시작 점은 체크 포인트 레코드에서만 수행 할 수 있습니다. 에이 다시 시작점은 체크 포인트 레코드에 도달하면 at에 도달하면 트리거됩니다. 최소Checkpoint_Timeout초가 있습니다 마지막 재시작 지점 이후 통과되었습니다. 대기 모드에서는 다시 시작점입니다 적어도Checkpoint_segments로그 세그먼트가 재생되었습니다 마지막 재시작 이후.
일반적으로 사용되는 두 가지가 있습니다사설 토토기능 :xloginsert
andxlogflush
. xloginsert
새 레코드를에 배치하는 데 사용됩니다.사설 토토공유 메모리의 버퍼. 만약에
새로운 기록을위한 공간이 없습니다.xloginsert
쓰기가 필요합니다 (커널로 이동하십시오
캐시) 몇 가지 채워진사설 토토버퍼.
이것은 바람직하지 않기 때문에xloginsert
모든 데이터베이스가 낮은 수준에서 사용됩니다
수정 (예 : 행 삽입)은
영향을받는 데이터 페이지에서 독점 잠금 장치가 유지되므로 작업이
가능한 빨리 있어야합니다. 더 나쁜 것은 글쓰기사설 토토버퍼도
더 많은 시간이 걸리는 새로운 로그 세그먼트의 생성.
보통,사설 토토버퍼가 있어야합니다
작성 및 플러시xlogflush
Transaction Commit에서 대부분의 경우 요청.
트랜잭션 레코드가 영구적으로 플러시되도록 할 시간
저장. 로그 출력이 높은 시스템에서xlogflush
요청이 자주 발생하지 않을 수 있습니다
예방하려면xloginsert
글을 쓰십시오. 그러한 시스템에서는의 수를 늘려야합니다.사설 토토수정하여 버퍼사설 토토_buffers매개 변수. 언제full_page_writes가 설정되어 있고 시스템이 매우 바쁘고 설정사설 토토_buffersHigher는 응답 시간을 원활하게하는 데 도움이됩니다
각 체크 포인트 직후 기간 동안.
theCommit_Delay매개 변수는 그룹 커밋 리더의 마이크로 초에 대해 정의합니다.
내부의 자물쇠를 얻은 후 프로세스가 잠들 것입니다xlogflush
, 그룹 커밋 추종자들이 대기합니다
리더 뒤에. 이 지연으로 다른 서버 프로세스가 추가 될 수 있습니다
사설 토토 버퍼에 대한 커밋 레코드는 모두가
리더의 최종 동기화 작업에 의해 플러시됩니다. 수면이 없습니다
발생하면 발생합니다.fsyncis
활성화되지 않거나보다 적은 경우Commit_Siblings다른 세션은 현재 활성 거래 중입니다. 이것은 피합니다
다른 세션이 커밋 할 가능성이 낮은 경우
곧. 일부 플랫폼에서 수면 해상도는
요청은 10 밀리 초이므로 0이 아닌 모든Commit_Delay1에서 10000 사이의 설정
마이크로 초는 동일한 효과를 갖습니다. 또한 일부에 주목하십시오
플랫폼, 수면 작업은 요청보다 약간 오래 걸릴 수 있습니다
매개 변수 별.
이후Commit_Delay각 플러시 작업의 비용이 상각되도록합니다. 동시에 거래를 저지른 것 (잠재적으로 비용으로 트랜잭션 대기 시간), 이전에 그 비용을 정량화해야합니다. 설정은 지능적으로 선택할 수 있습니다. 비용이 높을수록 더 효과적으로Commit_DelayIS 거래 처리량이 증가 할 것으로 예상됩니다. 그만큼PostgreSQL : 문서프로그램이 익숙해 질 수 있습니다 단일 월 플러시의 마이크로 초에서 평균 시간을 측정하십시오. 작동이 필요합니다. 프로그램 평균 시간의 절반의 값 단일 8KB 쓰기 작업 후에 플러시하는 데 걸리는 보고서 종종 가장 효과적인 설정Commit_Delay,이 값은 특정 작업량을 최적화 할 때 사용할 시작점. 조정하는 동안Commit_Delay특히입니다 사설 토토 로그가 고도가 높은 회전 디스크에 저장 될 때 유용합니다. 매우 빠른 스토리지 미디어에서도 이점이 중요 할 수 있습니다. 솔리드 스테이트 드라이브 또는 레이드 어레이와 같은 동기화 시간 배터리 지원 쓰기 캐시; 그러나 이것은 분명히 테스트해야합니다 대표적인 워크로드에 대해. 더 높은 값Commit_Siblings그러한 경우에 사용해야합니다. 더 작은 반면Commit_Siblings값은입니다 더 높은 대기 시간 매체에 도움이됩니다. 그것은 꽤 있습니다 설정 가능Commit_Delay너무 높아서 트랜잭션 대기 시간을 너무 많이 증가시킬 수 있습니다. 총 거래 처리량이 어려움을 겪습니다.
언제Commit_Delay0으로 설정되었습니다 ( 기본값), 그룹 커밋 형태가 여전히 가능합니다. 그러나 각 그룹은 지점에 도달하는 세션으로 만 구성됩니다. 창에서 커밋 기록을 씻어야하는 곳 이전 플러시 작업 (있는 경우)이 발생하는 것입니다. 더 높습니다 클라이언트 계산 a"Gangway Effect"경향 그룹 커밋의 영향이 중요해 지도록 도Commit_Delay는 0이므로 따라서 명시 적으로 설정Commit_Delay덜 도움이됩니다. 환경Commit_Delay만 가능합니다 (1) 동시에 거래가있을 때 도움, (2) 처리량은 커밋 비율로 어느 정도로 제한된다; 하지만 높은 회전 대기 시간을 사용하면이 설정이 효과적 일 수 있습니다. 두 명의 클라이언트만으로 거래 처리량 증가 ( 하나의 형제 거래를 가진 단일 커밋 고객).
the사설 토토_SYNC_METHOD매개 변수 결정 방법사설 토토커널에 강제를 요청합니다사설 토토디스크로 업데이트. 모든 옵션은 신뢰성 측면에서 동일해야합니다. 예외fsync_writethrough때로는 다른 옵션이라도 디스크 캐시의 플러시를 강제로 그렇게하지 마십시오. 그러나 그것은 무엇을 할 것인지는 플랫폼에 관한 것입니다 가장 빠릅니다. 다른 옵션의 속도를 사용하여 테스트 할 수 있습니다 그만큼PostgreSQL : 문서프로그램. 이것에 유의하십시오 매개 변수는 관련이 없습니다.fsync끄기.
활성화사설 토토_debug구성 매개 변수 ( 제공사설 토토그것은 각각을 초래할 것입니다.xloginsert
andxlogflush
사설 토토서버 로그에 로그인하는 통화. 이것
옵션이 더 일반적인 메커니즘으로 대체 될 수 있습니다.
미래.
이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
비동기 커밋 | 사설 토토 : 문서 : 9.3 : 신뢰성과 쓰기 로그 | 사설 토토 내부 |