몇 가지가 있습니다범퍼카 토토데이터베이스 성능에 영향을 미치는 관련 구성 매개 변수. 이 섹션에서는 사용을 설명합니다.19 장서버 구성 매개 변수 설정에 대한 일반 정보.
체크 포인트는 힙 및 인덱스 데이터 파일이 해당 체크 포인트 앞에 작성된 모든 정보로 업데이트되었음을 보장하는 일련의 트랜잭션의 포인트입니다. 체크 포인트 시간에 모든 더러운 데이터 페이지는 디스크로 플러시되고 특수 체크 포인트 레코드는 범퍼카 토토 파일에 기록됩니다.범퍼카 토토files.) 충돌이 발생하면 충돌 복구 절차는 최신 체크 포인트 레코드를보고 범퍼카 토토 (Redo Record)의 포인트를 결정하여 레디 작업을 시작해야합니다. 해당 지점 이전의 데이터 파일에 대한 변경 사항은 이미 디스크에 보장됩니다.범퍼카 토토아카이빙이 완료되고 있으며, 범퍼카 토토 세그먼트는 재활용되거나 제거되기 전에 보관해야합니다.)
모든 더러운 데이터 페이지를 디스크로 플러시하는 체크 포인트 요구 사항은 상당한 I/O로드를 유발할 수 있습니다. 이러한 이유로, 체크 포인트 활동은 조절되어 I/O가 Checkpoint 시작에서 시작하여 다음 체크 포인트가 시작되기 전에 완료되도록합니다.
서버의 체크 포인터 프로세스는 자주 검사 점을 자동으로 수행합니다. 체크 포인트가 시작됩니다Checkpoint_Timeout초, ifmax_범퍼카 토토_size가 초과 될 예정입니다. 기본 설정은 각각 5 분 및 1GB입니다.Checkpoint_Timeout
통과했습니다. (범퍼카 토토 아카이브가 사용 중이고 잠재적 데이터 손실에 결합하기 위해 파일이 자주 보관되어 얼마나 자주 한계를두고 싶다면 조정해야합니다.archive_timeout체크 포인트 매개 변수가 아닌 매개 변수.) SQL 명령을 사용하여 체크 포인트를 강제 할 수도 있습니다Checkpoint
.
감소Checkpoint_Timeout
및/또는max_범퍼카 토토_size
체크 포인트가 더 자주 발생합니다. 이를 통해 작업이 적은 작업이 적을 필요가 있기 때문에 더 빨리 충돌 후 복구를 가능하게합니다.full_page_writes(기본값과 마찬가지로) 설정되어 있으며 고려해야 할 또 다른 요소가 있습니다. 데이터 페이지 일관성을 보장하기 위해 각 체크 포인트 후 데이터 페이지를 첫 번째 수정하면 전체 페이지 컨텐츠를 기록합니다.
체크 포인트는 상당히 비싸다. 먼저 현재 더러운 버퍼를 기록해야하기 때문에, 둘째는 위에서 논의한대로 후속 범퍼카 토토 트래픽을 초래하기 때문에 둘째. 따라서 체크 포인트 매개 변수를 충분히 높게 설정하여 체크 포인트가 너무 자주 발생하지 않도록하는 것이 좋습니다.Checkpoint_warning매개 변수. 체크 포인트가보다 더 가까워지면Checkpoint_warning
초, 메시지가 서버 로그에 출력됩니다.max_범퍼카 토토_size
. 이러한 메시지의 경우 가끔 나타나는 것은 경보의 원인이 아니지만 자주 나타나면 체크 포인트 제어 매개 변수를 증가시켜야합니다.copy
전송으로 인해 설정하지 않은 경우 많은 경고가 나타날 수 있습니다max_범퍼카 토토_size
충분히.
페이지 쓰기가 버스트로 I/O 시스템에 침수를 피하기 위해 체크 포인트 중에 더러운 버퍼를 쓰는 것은 일정 기간에 걸쳐 퍼집니다. 그 기간은에 의해 제어됩니다.checkpoint_completion_target, 체크 포인트 간격의 일부로 제공됩니다 (사용하여 구성Checkpoint_Timeout
). 주어진 비율의시 체크 포인트가 완료되도록 I/O 속도가 조정됩니다.Checkpoint_Timeout
초가 경과했거나 그 이전에max_범퍼카 토토_size
를 초과하여 더 빨리 초과합니다. 기본값 0.9,PostgreSQL다음 예정된 체크 포인트 (마지막 체크 포인트 기간의 약 90%) 이전에 각 체크 포인트를 약간 완료 할 수 있습니다. 이는 체크 포인트 I/O 부하가 체크 포인트 간격에 걸쳐 일관되도록 I/O를 최대한 확산시킵니다.Checkpoint_Timeout
따라서 체크 포인트가 더 자주 발생하지만 여전히 체크 포인트 간격에 I/O를 퍼뜨 리도록합니다. 또는checkpoint_completion_target
감소 할 수 있지만, 이로 인해 더 강렬한 I/O (체크 포인트 중)와 I/O가 적은 시간 (체크 포인트가 완료된 후에는 다음 예정된 체크 포인트 이전)이 발생하지 않습니다. 하지만checkpoint_completion_target
1.0으로 설정할 수 있습니다. 체크 포인트에는 더러운 버퍼를 쓰는 것 외에 다른 활동이 포함되어 있기 때문에 일반적으로 0.9 (기본값)로 설정하는 것이 좋습니다. 1.0의 설정은 체크 포인트가 제 시간에 완료되지 않을 가능성이 높으므로 필요한 범퍼카 토토 세그먼트 수의 예상치 못한 변화로 인해 성능 손실이 발생합니다..
Linux 및 Posix 플랫폼에서checkpoint_flush_after구성 가능한 수의 바이트 후 체크 포인트에 의해 작성된 OS 페이지를 디스크로 플러시 할 수 있도록합니다. 그렇지 않으면,이 페이지는 OS의 페이지 캐시에 보관되어있을 때 마구간을 유도 할 수 있습니다.fsync
는 검문소 끝에서 발행됩니다. 이 설정은 종종 트랜잭션 대기 시간을 줄이는 데 도움이되지만 성능에 악영향을 미칠 수도 있습니다.shared_buffers이지만 OS의 페이지 캐시보다 작습니다.
범퍼카 토토 세그먼트 파일의 수PG_범퍼카 토토
디렉토리에 따라min_범퍼카 토토_size
, max_범퍼카 토토_size
및 이전 체크 포인트 사이클에서 생성 된 범퍼카 토토의 양. 오래된 범퍼카 토토 세그먼트 파일이 더 이상 필요하지 않은 경우 제거 또는 재활용됩니다 (즉, 번호가 매겨진 시퀀스의 미래 세그먼트가되도록 이름이 바뀌 었습니다).max_범퍼카 토토_size
초과하면, 불필요한 세그먼트 파일은 시스템 이이 한계에 따라 다시 돌아올 때까지 제거됩니다. 이 한계 아래에서 시스템은 다음 체크 포인트까지 추정 된 요구를 커버하기에 충분한 책치 파일을 재활용하고 나머지를 제거합니다.min_범퍼카 토토_size
향후 사용을 위해 재활용 된 책치 파일의 양에 최소값을 부여합니다. 시스템이 유휴 상태이고 범퍼카 토토 사용량 추정치에도 불구하고 범퍼카 토토은 항상 향후 사용을 위해 재활용됩니다.
독립적으로max_범퍼카 토토_size
, 가장 최근범퍼카 토토_Keep_SizeMegabytes of Wal 파일과 하나의 추가 범퍼카 토토 파일은 항상 보관됩니다. 또한 범퍼카 토토 아카이빙을 사용하는 경우 이전 세그먼트를 보관할 때까지 제거하거나 재활용 할 수 없습니다.archive_command
또는archive_library
반복적으로 실패하면, 오래된 왈 파일이 축적됩니다PG_범퍼카 토토
상황이 해결 될 때까지. 복제 슬롯을 사용하는 느리거나 실패한 대기 서버는 동일한 효과를 갖습니다 (참조섹션 26.2.6). 마찬가지로범퍼카 토토 요약활성화되고, 이전 세그먼트가 요약 될 때까지 보관됩니다.
아카이브 복구 또는 대기 모드에서 서버가 정기적으로 수행됩니다RETARTPOINTS,정상 작동의 체크 포인트와 유사한 : 서버는 모든 상태를 디스크로 강제하고 업데이트PG_CONTROL
파일은 이미 처리 된 범퍼카 토토 데이터를 다시 스캔 할 필요가 없음을 나타내고의 이전 범퍼카 토토 세그먼트 파일을 재활용합니다.PG_범퍼카 토토
디렉토리. 재시작 점은 체크 포인트 레코드에서만 수행 할 수 있기 때문에 기본의 검문소보다 더 자주 재시작 할 수 없습니다.RETARTPOINST_TIMED
카운터에서pg_stat_checkpointer
보기는 첫 번째를 계산하는 동안RestartPoints_Req
두 번째. 다시 시작점은 체크 포인트 레코드에 도달하면 스케줄별로 트리거됩니다Checkpoint_Timeout마지막으로 수행 된 재시작 지점 이후 또는 재시작을 수행하려는 이전 시도가 실패한 이후로 초가되었습니다. 마지막 경우 다음 재시작 지점은 15 초 안에 예약됩니다.max_범퍼카 토토_size그러나 재시작 지점을 수행 할 수있는 시점에 대한 제한이 있기 때문에max_범퍼카 토토_size
는 복구 중에 종종 최대 1 개의 체크 포인트 사이클의 범퍼카 토토을 초과합니다. (max_범퍼카 토토_size
어쨌든 어려운 한계는 아니므로 디스크 공간이 떨어지지 않도록 항상 많은 헤드 룸을 남겨 두어야합니다.)RestartPoints_done
카운터에서pg_stat_checkpointer
View는 실제로 수행 된 재시작을 계산합니다.
경우에 따라, 1 차의 월 크기가 빠르게 증가하는 경우, 예를 들어 대규모 인서트 중에RestartPoints_Req
대기의 카운터는 최고 성장을 보여줄 수 있습니다. 마지막 재시작 지점이 아직 대기에서 재생되지 않았기 때문에 안전한 체크 포인트 레코드가 아직 재생되지 않았기 때문에 XLOG 소비 증가로 인해 새로운 재시작 포인트를 작성하라는 요청을 수행 할 수 없기 때문에 발생합니다.RestartPoints_done
재시작 지점 관련 카운터 사이의 카운터는 눈에 띄는 시스템 리소스가 소비되었음을 나타냅니다.
일반적으로 사용되는 두 가지가 있습니다범퍼카 토토기능 :xloginsertrecord
및xlogflush
. xloginsertrecord
새 레코드를에 배치하는 데 사용됩니다.범퍼카 토토공유 메모리의 버퍼. 새 기록을위한 공간이 없다면xloginsertrecord
작성해야합니다 (커널 캐시로 이동).범퍼카 토토버퍼. 이것은 바람직하지 않기 때문에xloginsertrecord
는 영향을받는 데이터 페이지에서 독점 잠금이 유지 될 때 모든 데이터베이스 저 레벨 수정 (예 : 행 삽입)에서 사용되므로 최대한 빨리 작동해야합니다. 더 나쁜 것은 글쓰기범퍼카 토토버퍼는 또한 새로운 범퍼카 토토 세그먼트의 생성을 강요 할 수 있으며, 이는 더 많은 시간이 걸립니다. 보통,범퍼카 토토버퍼는 AN에 의해 작성되고 플러시되어야합니다xlogflush
트랜잭션 커밋 시간에 따라 트랜잭션 레코드가 영구 저장소로 플러시되도록 요청합니다. 범퍼카 토토 출력이 높은 시스템에서xlogflush
요청은 자주 예방하기에 충분하지 않을 수 있습니다xloginsertrecord
쓰기를해야합니다. 그러한 시스템에서는의 수를 늘려야합니다.범퍼카 토토수정하여 버퍼범퍼카 토토_buffers매개 변수. 언제full_page_writes설정되었고 시스템이 매우 바쁘고 설정범퍼카 토토_buffers
Higher는 각 체크 포인트 바로 다음 기간 동안 응답 시간을 매끄럽게하는 데 도움이됩니다.
theCommit_Delay매개 변수는 그룹 커밋 리더 프로세스가 자물쇠를 획득 한 후 잠을자는 마이크로 초에 대해 정의합니다xlogflush
, 그룹 커밋 추종자들은 리더 뒤에서 대기합니다. 이 지연을 통해 다른 서버 프로세스는 Commit Records를 범퍼카 토토 버퍼에 추가하여 리더의 최종 동기화 작업에 의해 모두 플러시되도록합니다.fsync가 활성화되지 않았거나보다 적은 경우Commit_Siblings다른 세션은 현재 활성 거래 중입니다. 이것은 다른 세션이 곧 커밋 될 가능성이 낮은 경우 수면을 피합니다.Commit_Delay
1에서 10000 마이크로 초 사이의 설정은 동일한 효과를 갖습니다. 일부 플랫폼에서는 수면 작업이 매개 변수에서 요청한 것보다 약간 더 오래 걸릴 수 있습니다.
의 목적 이후Commit_Delay
는 거래 대기 시간을 희생시키면서 (잠재적으로 트랜잭션 대기 시간을 희생 시키면) 각 플러시 작업의 비용이 상각 할 수 있도록하는 것입니다. 설정을 지능적으로 선택하기 전에 해당 비용을 정량화해야합니다. 비용이 높을수록 더 효과적입니다Commit_Delay
는 거래 처리량을 증가시킬 것으로 예상됩니다. 그만큼PG_TEST_FSYNC프로그램을 사용하여 단일 범퍼카 토토 플러시 작업이 취하는 마이크로 초의 평균 시간을 측정 할 수 있습니다. 단일 8KB 쓰기 작업 후에 프로그램이 플러시하는 데 걸리는 평균 시간의 절반의 값은 종종 가장 효과적인 설정입니다Commit_Delay
,이 값은 특정 작업량을 최적화 할 때 사용할 시작점으로 권장됩니다. 조정하는 동안Commit_Delay
범퍼카 토토이 고도가 높은 회전 디스크에 저장 될 때 특히 유용하며, 솔리드 스테이트 드라이브 또는 배터리에 접근 된 쓰기 캐시가있는 RAID 어레이와 같은 매우 빠른 동기화 시간이있는 스토리지 미디어에서도 이점이 중요 할 수 있습니다. 그러나 이것은 분명히 대표적인 워크로드에 대해 테스트해야합니다.Commit_Siblings
그러한 경우에 사용해야하는 반면Commit_Siblings
값은 종종 높은 대기 시간 매체에 도움이됩니다. 의 설정이 가능하다는 점에 유의하십시오.Commit_Delay
너무 높아서 총 트랜잭션 처리량이 어려움을 겪을 정도로 트랜잭션 대기 시간을 증가시킬 수 있습니다.
언제Commit_Delay
는 0으로 설정되어 있으며 (기본값), 그룹 커밋 형태가 여전히 발생할 수 있지만, 각 그룹은 이전 플러시 작업 (있는 경우)이 발생하는 창에서 커밋 레코드를 플러시 해야하는 지점에 도달하는 세션만으로 구성됩니다. 더 높은 클라이언트에서는 A“통로 효과”발생하는 경향이 있으므로 그룹 커밋의 영향이 중요해도Commit_Delay
| 0이므로 명시 적으로 설정Commit_Delay
덜 도움이되는 경향이 있습니다. 환경Commit_Delay
(1) 동시에 거래하는 거래가있을 때만 도움을 줄 수 있으며 (2) 처리량은 커밋 비율로 어느 정도로 제한됩니다. 그러나 회전 대기 시간이 높으면이 설정은 두 명의 클라이언트 (즉, 한 형제 거래를 가진 단일 커밋 클라이언트)로 트랜잭션 처리량을 늘리는 데 효과적 일 수 있습니다..
the범퍼카 토토_Sync_Method매개 변수 결정 방법PostgreSQL커널에 강제를 요청합니다범퍼카 토토디스크로 업데이트. 모든 옵션은 신뢰성 측면에서 동일해야합니다.fsync_writethrough
, 다른 옵션이 그렇게하지 않더라도 디스크 캐시의 플러시를 강제 할 수 있습니다. 그러나 가장 빠른 플랫폼 특정입니다.PG_TEST_FSYNC프로그램. 이 매개 변수는이라면 관련이 없습니다.fsync
꺼졌습니다.
활성화범퍼카 토토_debug구성 매개 변수 (제공PostgreSQL지원을 통해 편집되었습니다.xloginsertrecord
및xlogflush
범퍼카 토토서버 로그에 로그인하는 통화. 이 옵션은 향후보다 일반적인 메커니즘으로 대체 될 수 있습니다.
범퍼카 토토 데이터를 디스크에 작성하는 두 가지 내부 기능이 있습니다 :xlogwrite
및issure_xlog_fsync
. 언제track_범퍼카 토토_io_timing활성화되어 총 시간의 총 금액xlogwrite
쓰기 및issure_xlog_fsync
디스크에 범퍼카 토토 데이터 동기화범퍼카 토토_write_time
및범퍼카 토토_sync_time
inPG_STAT_범퍼카 토토각각.xlogwrite
일반적으로xloginsertrecord
(범퍼카 토토 버퍼에 새 레코드를위한 공간이 없을 때),xlogflush
및 범퍼카 토토 WRITER, 범퍼카 토토 버퍼를 디스크에 작성하고 호출하는issure_xlog_fsync
. issure_xlog_fsync
일반적으로xlogwrite
웨이프 파일을 디스크에 동기화합니다. 만약에범퍼카 토토_Sync_Method
isOpen_Datasync
또는Open_Sync
, 쓰기 작업xlogwrite
서면 범퍼카 토토 데이터를 디스크에 동기화하는 보장 및issure_xlog_fsync
아무것도하지 않습니다. 만약에범퍼카 토토_Sync_Method
isfdatasync
, fsync
또는fsync_writethrough
, 쓰기 작업은 범퍼카 토토 버퍼를 커널 캐시로 이동하고issure_xlog_fsync
디스크와 동기화합니다. 설정에 관계없이track_범퍼카 토토_io_timing
, 횟수xlogwrite
쓰기 및issure_xlog_fsync
디스크에 범퍼카 토토 데이터를 동기화합니다.범퍼카 토토_Write
및범퍼카 토토_Sync
inPG_STAT_범퍼카 토토
각각.
theRecovery_prefetch매개 변수를 사용하여 커널에 곧 필요하지만 현재없는 디스크 블록의 읽기를 시작하도록 지시함으로써 복구 중 I/O 대기 시간을 줄일 수 있습니다.PostgreSQL의 버퍼 풀. 그만큼Maintending_io_concurrency및범퍼카 토토_DECODE_BUFFER_SIZE설정은 각각 동시성과 거리를 사전 페치하는 동시성을 제한합니다. 기본적으로로 설정됩니다.try
, 시스템의 기능을 가능하게하는posix_fadvise
사용 가능합니다.
문서에 올바른 것이 없다면 일치하지 않습니다.이 양식문서 문제를보고하려면