그pg_prewarm모듈은 관계 토토 꽁 머니를 운영 체제 버퍼 캐시 또는포스트그레SQL버퍼 캐시. 사전 예열은 다음을 사용하여 수동으로 수행할 수 있습니다.pg_prewarm함수 또는 다음을 포함하여 자동으로 수행될 수 있습니다.pg_prewarminshared_preload_libraries. 후자의 경우 시스템은 공유 버퍼의 내용을 주기적으로 파일에 기록하는 백그라운드 작업자를 실행합니다.autoprewarm.blocks그리고 2개의 백그라운드 워커를 사용하여 재시작 후 동일한 블록을 다시 로드합니다.
pg_prewarm(regclass, 모드 텍스트 기본값 '버퍼', 포크 텍스트 기본값 'main',
first_block int8 기본값은 null,
last_block int8 기본값 null) RETURNS int8
첫 번째 인수는 미리 데울 관계입니다. 두 번째 주장은 아래에서 자세히 설명하는 것처럼 사용할 예열 방법입니다. 세 번째는 일반적으로 미리 데워질 관계 포크입니다.메인. 네 번째 인수는 사전 준비할 첫 번째 블록 번호입니다(NULL0의 동의어로 허용됩니다). 다섯 번째 인수는 사전 준비할 마지막 블록 번호입니다(NULL관계의 마지막 블록을 통해 prewarm을 의미합니다). 반환 값은 미리 예열된 블록 수입니다.
세 가지 사전 예열 방법이 있습니다.프리페치지원되는 경우 운영 체제에 비동기 프리페치 요청을 발행하고, 지원되지 않으면 오류를 발생시킵니다.읽기요청된 블록 범위를 읽습니다. 달리프리페치, 이는 동기식이며 모든 플랫폼과 빌드에서 지원되지만 속도가 느려질 수 있습니다.버퍼요청된 블록 범위를 데이터베이스 버퍼 캐시로 읽습니다.
이러한 방법 중 하나를 사용하면 캐시할 수 있는 것보다 더 많은 블록을 미리 준비하려고 시도한다는 점에 유의하세요. — 사용 시 OS에 의해프리페치또는읽기또는 작성자:포스트그레SQL사용 시버퍼— 더 높은 번호의 블록을 읽으면 더 낮은 번호의 블록이 제거될 가능성이 높습니다. 또한 사전 워밍업된 토토 꽁 머니는 캐시 축출로부터 특별한 보호를 받지 못하므로 읽힌 직후에 다른 시스템 활동으로 인해 새로 워밍업된 블록이 제거될 수도 있습니다. 반대로 사전 준비로 인해 캐시에서 다른 토토 꽁 머니가 제거될 수도 있습니다. 이러한 이유로 사전 준비는 일반적으로 캐시가 거의 비어 있는 시작 시 가장 유용합니다.
autoprewarm_start_worker() 반환 무효
주 autoprewarm 작업자를 실행합니다. 이는 일반적으로 자동으로 발생하지만 서버 시작 시 자동 사전 준비가 구성되지 않았고 나중에 작업자를 시작하려는 경우 유용합니다.
autoprewarm_dump_now() 반환 int8
업데이트autoprewarm.blocks즉시. 이는 autoprewarm 작업자가 실행 중이 아니지만 다음에 다시 시작한 후 실행할 것으로 예상되는 경우 유용할 수 있습니다. 반환 값은 기록된 레코드 수입니다.autoprewarm.blocks.
이 매개변수는 다음에서 설정되어야 합니다.postgresql.conf. 일반적인 사용법은 다음과 같습니다:
# postgresql.conf shared_preload_libraries = 'pg_prewarm' pg_prewarm.autoprewarm = true pg_prewarm.autoprewarm_interval = 300초
로버트 하스<rhaas@postgresql.org
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.