몇 가지가 있습니다무지개 토토데이터베이스 성능에 영향을 미치는 관련 구성 매개 변수. 이 섹션에서는 사용을 설명합니다.20 장서버 구성 매개 변수 설정에 대한 일반 정보.
체크 포인트는 힙 및 인덱스 데이터 파일이 해당 체크 포인트 앞에 작성된 모든 정보로 업데이트되었음을 보장하는 일련의 트랜잭션의 포인트입니다. 체크 포인트 시간에 모든 더러운 데이터 페이지가 디스크로 플러시되고 특수 체크 포인트 레코드가 로그 파일에 기록됩니다.무지개 토토files.) 충돌이 발생하면 충돌 복구 절차는 최신 체크 포인트 레코드를보고 로그의 포인트 (Redo 레코드라고 함)를 결정하여 다시 작업을 시작해야합니다. 해당 지점 이전의 데이터 파일에 대한 변경 사항은 이미 디스크에 보장됩니다.무지개 토토아카이빙이 완료되고 있으며, 로그 세그먼트는 재활용 또는 제거되기 전에 보관해야합니다.)
모든 더러운 데이터 페이지를 디스크로 플러시하는 체크 포인트 요구 사항은 상당한 I/O로드를 유발할 수 있습니다. 이러한 이유로, 체크 포인트 활동은 조절되어 I/O가 Checkpoint 시작에서 시작하여 다음 체크 포인트가 시작되기 전에 완료되도록합니다.
서버의 체크 포인터 프로세스는 자주 검사 점을 자동으로 수행합니다. 체크 포인트가 시작됩니다Checkpoint_Timeout초, ifmax_무지개 토토_size가 초과 될 예정입니다. 기본 설정은 각각 5 분 및 1GB입니다.Checkpoint_Timeout
통과했습니다. (무지개 토토 아카이브가 사용 중이고 잠재적 데이터 손실에 결합하기 위해 파일이 자주 보관되어 얼마나 자주 한계를두고 싶다면 조정해야합니다.archive_timeout체크 포인트 매개 변수가 아닌 매개 변수.) SQL 명령을 사용하여 체크 포인트를 강제 할 수도 있습니다Checkpoint
.
감소Checkpoint_Timeout
및/또는max_무지개 토토_size
체크 포인트가 더 자주 발생합니다. 이를 통해 작업이 적은 작업이 적을 필요가 있기 때문에 더 빨리 충돌 후 복구를 가능하게합니다.full_page_writes(기본값과 마찬가지로) 설정되어 있으며 고려해야 할 또 다른 요소가 있습니다. 데이터 페이지 일관성을 보장하기 위해 각 체크 포인트 후 데이터 페이지를 첫 번째 수정하면 전체 페이지 컨텐츠를 기록합니다.
체크 포인트는 상당히 비싸다. 먼저 현재 더러운 버퍼를 기록해야하기 때문에 두 번째는 위에서 논의한대로 후속 WAL 트래픽을 초래하기 때문에 두 번째는 상당히 비싸다. 따라서 체크 포인트 매개 변수를 충분히 높게 설정하여 체크 포인트가 너무 자주 발생하지 않도록하는 것이 좋습니다.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의 설정은 체크 포인트가 제 시간에 완료되지 않을 가능성이 높으므로 필요한 WAL 세그먼트 수의 예상치 못한 변화로 인해 성능 손실이 발생합니다..
Linux 및 Posix 플랫폼에서Checkpoint_flush_after구성 가능한 수의 바이트 후 체크 포인트에서 작성한 페이지를 디스크로 플러시해야합니다. 그렇지 않으면,이 페이지는 OS의 페이지 캐시에 보관되어있을 때 마구간을 유도 할 수 있습니다.fsync
체크 포인트의 끝에 발행됩니다. 이 설정은 종종 트랜잭션 대기 시간을 줄이는 데 도움이되지만 성능에 악영향을 미칠 수도 있습니다.shared_buffers이지만 OS의 페이지 캐시보다 작습니다.
무지개 토토 세그먼트 파일의 수PG_무지개 토토
디렉토리에 따라min_무지개 토토_size
, max_무지개 토토_size
및 이전 체크 포인트 사이클에서 생성 된 WAL의 양. 이전 로그 세그먼트 파일이 더 이상 필요하지 않은 경우 제거되거나 재활용됩니다 (즉, 번호가 매겨진 시퀀스의 미래 세그먼트가되도록 이름이 바뀌 었습니다).max_무지개 토토_size
를 초과하면, 불필요한 세그먼트 파일은 시스템 이이 한계에 따라 다시 돌아올 때까지 제거됩니다. 이 한계 아래에서 시스템은 다음 체크 포인트까지 추정 된 요구를 커버하기에 충분한 책치 파일을 재활용하고 나머지를 제거합니다.min_무지개 토토_size
향후 사용을 위해 재활용 된 책치 파일의 양에 최소값을 부여합니다. 시스템이 유휴 상태이고 무지개 토토 사용량 추정치에도 불구하고 무지개 토토은 항상 향후 사용을 위해 재활용됩니다.
독립적으로max_무지개 토토_size
, 가장 최근무지개 토토_keep_sizeMegabytes of 무지개 토토 파일과 하나의 추가 WAL 파일은 항상 보관됩니다. 또한 WAL 아카이빙을 사용하는 경우 이전 세그먼트를 보관할 때까지 제거하거나 재활용 할 수 없습니다.archive_command
반복적으로 실패하면, 오래된 왈 파일은PG_무지개 토토
상황이 해결 될 때까지. 복제 슬롯을 사용하는 느리거나 실패한 대기 서버는 동일한 효과를 갖습니다 (참조섹션 27.2.6).
아카이브 복구 또는 대기 모드에서 서버가 정기적으로 수행됩니다RETARTPOINTS,정상 작동의 검문소와 유사한 : 서버는 모든 상태를 디스크로 강제하고 업데이트PG_CONTROL
파일은 이미 처리 된 WAL 데이터를 다시 스캔 할 필요가 없음을 나타내고의 이전 로그 세그먼트 파일을 재활용합니다.PG_무지개 토토
디렉토리. 재시작 점은 체크 포인트 레코드에서만 수행 할 수 있기 때문에 기본의 검문소보다 더 자주 재시작 할 수 없습니다.Checkpoint_Timeout
마지막 재시작 포인트 이후로 지나가거나 월 크기가 초과 될 경우max_무지개 토토_size
. 그러나 다시 시작점을 수행 할 수있는 시점에 대한 제한이 있기 때문에max_무지개 토토_size
는 복구 중에 종종 최대 1 개의 체크 포인트 사이클의 WAL을 초과합니다. (max_무지개 토토_size
어쨌든 어려운 한계는 아니므로 디스크 공간이 떨어지지 않도록 항상 많은 헤드 룸을 남겨 두어야합니다.)
일반적으로 사용되는 두 가지가 있습니다무지개 토토기능 :xloginsertrecord
andxlogflush
. xloginsertrecord
새 레코드를에 배치하는 데 사용됩니다.무지개 토토공유 메모리의 버퍼. 새 기록을위한 공간이 없다면xloginsertrecord
작성해야합니다 (커널 캐시로 이동).무지개 토토버퍼. 이것은 바람직하지 않기 때문에xloginsertrecord
는 영향을받는 데이터 페이지에서 독점 잠금을 유지할 때 모든 데이터베이스 저 레벨 수정 (예 : 행 삽입)에서 사용되므로 최대한 빨리 작동해야합니다. 더 나쁜 것은 글쓰기무지개 토토버퍼는 또한 새로운 로그 세그먼트의 생성을 강요 할 수 있으며, 이는 더 많은 시간이 걸립니다. 보통,무지개 토토버퍼를 작성하고 플러시해야합니다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
andxlogflush
무지개 토토서버 로그에 로그인하는 통화. 이 옵션은 향후보다 일반적인 메커니즘으로 대체 될 수 있습니다.
무지개 토토 데이터를 디스크에 작성하는 두 가지 내부 기능이 있습니다 :xlogwrite
andissure_xlog_fsync
. 언제track_무지개 토토_io_timing활성화되어 총 시간의 총 금액xlogwrite
쓰기 및issure_xlog_fsync
디스크에 무지개 토토 데이터 동기화무지개 토토_write_time
and무지개 토토_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
and무지개 토토_Sync
inPG_STAT_무지개 토토
각각.
문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면