이 문서는 지원되지 않는 메이저 토토 사이트 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 28.5. 메이저 토토 사이트 구성버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

25.3. WAL메이저 토토 사이트

몇 가지가 있습니다WAL관련 메이저 토토 사이트 매개변수 데이터베이스 성능에 영향을 미칩니다. 이 섹션에서는 그 사용법을 설명합니다. 문의섹션 16.4용 메이저 토토 사이트 매개변수 설정에 대한 세부정보입니다.

체크포인트다음의 거래 순서에 있는 지점입니다. 이는 데이터 파일이 업데이트되었음을 보장합니다. 체크포인트 이전에 기록된 모든 정보. 체크포인트 시간에는 모든 더티 데이터 페이지는 디스크와 특수 체크포인트로 플러시됩니다. 기록은 로그 파일에 기록됩니다. 결과적으로, 다음과 같은 경우 충돌이 발생한 경우 복구자는 로그의 어떤 기록( 리두 레코드) REDO 작업을 시작해야 합니다. 해당 레코드가 이미 존재하기 전에 데이터 파일에 변경된 사항이 있습니다. 디스크. 체크포인트가 생성된 후 기록된 모든 로그 세그먼트 리두 레코드가 더 이상 필요하지 않고 재활용될 수 있기 전에 또는 제거되었습니다. (언제WAL기반구현되어 로그 세그먼트는 재활용되거나 제거되기 전에 보관됩니다.)

서버는 종종 특별한 프로세스를 생성하여 생성합니다. 다음 체크포인트. 체크포인트는 다음과 같이 생성됩니다.checkpoint_segments로그 세그먼트 또는 모든checkpoint_timeout초, 어느 쪽이든 먼저 온다. 기본 설정은 3개 세그먼트, 300초입니다. 각각. 다음을 사용하여 체크포인트를 강제로 적용할 수도 있습니다. SQL 명령체크포인트.

감소checkpoint_segments및/또는checkpoint_timeout체크포인트 원인 더 자주 하세요. 이를 통해 충돌 후 더 빠른 복구가 가능합니다. (다시 수행해야 하는 작업이 줄어들기 때문입니다.) 그러나 반드시 더티 데이터를 플러시하는 데 드는 비용 증가와 균형을 유지합니다. 페이지가 더 자주 표시됩니다. 또한, 데이터 페이지 일관성을 보장하기 위해 각 체크포인트 이후 데이터 페이지의 첫 번째 수정 결과적으로 전체 페이지 콘텐츠가 기록됩니다. 따라서 더 작은 체크포인트 간격은 로그에 대한 출력 볼륨을 증가시킵니다. 더 작은 간격을 사용하려는 목표를 부분적으로 부정하고 더 많은 디스크 I/O를 발생시키는 경우.

적어도 하나의 16MB 세그먼트 파일이 있을 것이며, 일반적으로 2개를 넘지 않습니다 *checkpoint_segments+ 1개 파일. 이를 사용하여 다음을 수행할 수 있습니다. WAL의 공간 요구 사항을 추정합니다. 일반적으로 오래된 로그의 경우 세그먼트 파일은 더 이상 필요하지 않으며 재활용됩니다(이름이 다음으로 변경됨). 번호가 매겨진 순서에서 다음 세그먼트가 됩니다). 만약, 어떤 일로 인해 로그 출력 속도의 단기 최고점에는 2개 이상의 *가 있습니다.checkpoint_segments+ 1개 세그먼트 파일, 불필요한 세그먼트 파일은 재활용되는 대신 삭제됩니다. 시스템이 다시 이 제한 아래로 돌아올 때까지.

일반적으로 사용되는 두 가지가 있습니다.WAL기능:로그 삽입그리고로그플러시. 로그삽입새 레코드를 배치하는 데 사용됩니다.WAL공유된 버퍼 기억. 새 레코드를 위한 공간이 없는 경우,로그 삽입작성해야 합니다(커널로 이동) 캐시) 몇 개 채워짐WAL버퍼. 이는 바람직하지 않습니다. 왜냐하면로그 삽입모든 데이터베이스 하위 수준에서 사용됩니다. 수정(예: 행 삽입) 영향을 받은 데이터 페이지에 배타적 잠금이 유지되므로 작업이 최대한 빨리 해야 합니다. 더 나쁜 것은 글쓰기입니다.WAL버퍼는 또한 강제로 새로운 로그 세그먼트를 생성하는데 더 많은 시간이 소요됩니다. 일반적으로,WAL버퍼는 다음과 같습니다 a에 의해 작성되고 플러시됩니다.로그플러시요청은 가장 많이 이루어진 것입니다. 부분적으로 트랜잭션 커밋 시간에 해당 트랜잭션을 보장합니다. 기록은 영구 저장소로 플러시됩니다. 높은 시스템에서 로그 출력,로그플러시요청이 있을 수 있음 예방할 만큼 자주 발생하지 않음WAL버퍼 작성 중로그 삽입. 그러한 시스템에서는 증가해야 합니다. 수WAL버퍼 기준 메이저 토토 사이트 매개변수 수정wal_buffers. 기본 개수WAL버퍼는 8입니다. 이 값을 늘리면 이에 따라 공유 메모리 사용량이 늘어납니다.

체크포인트는 모든 것을 더럽게 만들기 때문에 상당히 비쌉니다. 운영 체제를 사용하여 디스크에 대한 커널 버퍼동기화()전화하세요. 사용량이 많은 서버가 체크포인트를 채울 수 있음 파일을 너무 빨리 분할하여 과도한 체크포인트를 유발합니다. 만약에 이러한 강제 체크포인트는 다음보다 더 자주 발생합니다.체크포인트_경고초, 메시지가 증가를 권장하는 서버 로그에 출력checkpoint_segments.

commit_delay매개변수 정의 서버 프로세스가 몇 마이크로초 후에 절전 모드로 전환되는지 다음을 사용하여 커밋 레코드를 로그에 기록합니다.로그삽입그러나 다음을 수행하기 전에로그플러시. 이 지연으로 인해 다른 서버가 커밋 기록을 로그에 추가하는 프로세스 모두 단일 로그 동기화로 플러시됩니다. 잠이 오지 않을 것이다 만일fsync활성화되지 않았거나 더 적은 경우 보다commit_siblings다른 세션은 현재 활성 거래 중입니다. 이것은 잠을 자지 못하게 한다 다른 세션이 곧 커밋될 가능성은 거의 없습니다. 참고하세요 대부분의 플랫폼에서 절전 요청의 해결 방법은 10입니다. 0이 아닌 값은 밀리초commit_delay1에서 10000 사이로 설정 마이크로초도 같은 효과를 갖습니다. 이에 대한 좋은 가치 매개변수가 아직 명확하지 않습니다. 실험이 권장됩니다.

wal_sync_method매개변수 방법을 결정합니다메이저 토토 사이트할 것이다 WAL 업데이트를 디스크로 강제 실행하도록 커널에 요청합니다. 모든 옵션 신뢰성에 관한 한 동일해야 하지만 꽤 그렇습니다. 플랫폼별로 어느 것이 가장 빠른지. 참고하세요 다음과 같은 경우 매개변수가 관련이 없습니다.fsync있음 꺼졌습니다.

설정wal_debug매개변수 0이 아닌 값은 각각의 결과를 낳습니다.로그 삽입그리고로그플러시 WAL호출이 서버 로그에 기록됩니다. 현재는 그렇지 않습니다. 0이 아닌 값이 무엇인지 차이가 있습니다. 이 옵션은 대체될 수 있습니다. 앞으로는 보다 일반적인 메커니즘을 사용하게 될 것입니다.