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

18.4. 리소스 소비

18.4.1. 메모리

shared_buffers (정수)

데이터베이스 서버가 사용하는 메모리 양을 설정합니다. 공유 메모리 버퍼. 기본값은 일반적으로 32입니다. 메가바이트(32MB), 하지만 그럴 수도 있습니다. 커널 설정이 이를 지원하지 않으면 더 적습니다(예: 동안 결정됨initdb). 이 설정은 다음과 같아야 합니다. 최소 128KB. (기본값이 아님BLCKSZ최소값을 변경하세요.) 그러나, 최소값보다 훨씬 높은 설정은 일반적으로 좋은 성능을 위해 필요합니다. 이 매개변수는 서버 시작 시에만 설정됩니다.

1GB 이상의 전용 데이터베이스 서버가 있는 경우 더 많은 RAM, 합리적인 시작 값shared_buffers메모리의 25%입니다. 당신의 시스템. 심지어 큰 규모의 작업 부하도 토토 사이트. 에 대한 설정shared_buffers토토 사이트 효과적이지만, 왜냐하면포스트그레SQL또한 운영 체제 캐시가 할당될 가능성은 거의 없습니다. RAM의 40% 이상을 차지합니다.shared_buffers다음보다 더 잘 작동할 것입니다 더 적은 양. 더 큰 설정:shared_buffers보통 해당 증가checkpoint_segments, 확산시키기 위해 새로운 글이나 글을 대량으로 작성하는 과정에서 장기간에 걸쳐 데이터가 변경되었습니다.

RAM이 1GB 미만인 시스템에서는 더 작은 RAM의 비율이 적절해야 합니다. 운영 체제를 위한 공간입니다. 또한 Windows에서는 대용량 에 대한 값shared_buffers아닙니다 효과적이다. 유지하면서 더 나은 결과를 얻을 수 있습니다. 상대적으로 낮게 설정하고 운영 체제를 사용하는 경우 대신 더 많이 캐시하세요. 다음의 유용한 범위는shared_buffersWindows 시스템에서는 일반적으로 64MB에서 512MB까지입니다.

이 매개변수를 늘리면 다음이 발생할 수 있습니다.포스트그레SQL추가 요청시스템 V공유 메모리 운영 체제의 기본 구성보다 허용합니다. 참조섹션 17.4.1용 해당 매개변수를 조정하는 방법에 대한 정보(해당하는 경우) 필요합니다.

temp_buffers (정수)

다음에서 사용하는 임시 버퍼의 최대 수를 설정합니다. 각 데이터베이스 세션. 이는 세션 로컬 버퍼입니다. 임시 테이블에 액세스하는 데에만 사용됩니다. 기본값은 8메가바이트(8MB). 는 설정은 개별 세션 내에서 변경할 수 있지만 내부에서 임시 테이블을 처음 사용하기 전에만 세션; 이후에 값을 변경하려고 시도하면 해당 세션에는 아무런 영향을 미치지 않습니다.

세션은 필요에 따라 임시 버퍼를 할당합니다 에 의해 주어진 한도까지temp_buffers. 큰 설정 비용 실제로 많은 것이 필요하지 않은 세션의 가치 임시 버퍼는 버퍼 설명자일 뿐입니다. 64바이트, 증분당temp_buffers. 그러나 버퍼가 있는 경우 실제로 사용되면 추가로 8192바이트가 토토 사이트됩니다. 그것을 위해(또는 일반적으로,BLCKSZ바이트).

max_prepared_transactions (정수)

가능한 최대 트랜잭션 수를 설정합니다."준비됨"상태 동시에 (참조거래 준비). 이 매개변수를 0으로 설정(기본값) 준비된 트랜잭션 기능을 비활성화합니다. 이 매개변수 서버 시작 시에만 설정할 수 토토 사이트.

준비된 트랜잭션을 사용할 계획이 없다면, 방지하려면 이 매개변수를 0으로 설정해야 합니다. 준비된 트랜잭션이 실수로 생성되었습니다. 만약 당신이 준비된 트랜잭션을 사용하면 아마도 원할 것입니다max_prepared_transactions되다 적어도 다음과 같은 크기max_connections, 모든 세션이 준비된 트랜잭션을 가질 수 있도록 보류 중입니다.

이 매개변수를 늘리면 다음이 발생할 수 있습니다.포스트그레SQL추가 요청시스템 V공유 메모리 운영 체제의 기본 구성보다 허용합니다. 참조섹션 17.4.1용 해당 매개변수를 조정하는 방법에 대한 정보(해당하는 경우) 필요합니다.

대기 서버를 실행할 때 다음을 설정해야 합니다. 매개변수를 마스터의 값과 동일하거나 더 높은 값으로 설정 서버. 그렇지 않으면 쿼리가 허용되지 않습니다. 대기 서버입니다.

work_mem (정수)

내부에서 사용할 메모리 양을 지정합니다. 쓰기 전에 작업 및 해시 테이블을 정렬합니다. 임시 디스크 파일. 기본값은 1MB입니다. (1MB). 콤플렉스의 경우 참고하세요 쿼리, 여러 정렬 또는 해시 작업이 실행 중일 수 있습니다. 병렬로; 각 작업은 다음과 같이 사용할 수 있습니다. 시작하기 전에 이 값이 지정하는 만큼의 메모리 임시 파일에 데이터를 씁니다. 또한 여러 가지 실행 세션은 이러한 작업을 동시에 수행할 수 있습니다. 따라서 사용되는 총 메모리는 다음의 몇 배가 될 수 있습니다. 값work_mem; 그것은이다 이 사실을 염두에 두고 제품을 선택할 필요가 있습니다. 가치. 정렬 작업은 다음에 사용됩니다.주문 기준, 독특및 병합 조인. 해시 테이블은 해시 조인, 해시 기반 집계 등에 사용됩니다. 해시 기반 처리IN하위 쿼리.

maintenance_work_mem (정수)

다음에서 사용할 최대 메모리 양을 지정합니다. 유지 관리 작업(예:진공, 만들기 인덱스테이블 변경 추가 외래 키. 기본값은 16MB입니다(16MB). 이 작업 중 하나만 있기 때문에 데이터베이스 세션에 의해 한 번에 실행될 수 있으며 설치에는 일반적으로 많은 프로그램이 실행되지 않습니다. 동시에 이 값을 크게 설정하는 것이 안전합니다. 보다 큼work_mem. 더 크게 설정을 사용하면 진공 청소 및 청소 성능이 향상될 수 있습니다. 데이터베이스 덤프를 복원합니다.

autovacuum이 실행되면 최대autovacuum_max_workers이 메모리는 아마도 할당되므로 기본값도 설정하지 않도록 주의하세요. 높다.

max_stack_깊이 (정수)

서버의 최대 안전 깊이를 지정합니다 실행 스택. 이 매개변수의 이상적인 설정은 다음과 같습니다. 커널에 의해 적용되는 실제 스택 크기 제한(예: 에 의해 설정됨ulimit -s또는 로컬 이에 상응), 메가바이트 정도의 안전 여유가 줄어듭니다. 스택 깊이가 2이므로 안전 마진이 필요합니다. 서버의 모든 루틴을 체크인하지는 않았지만 표현식과 같은 잠재적으로 재귀적인 주요 루틴 평가. 기본 설정은 2MB입니다. (2MB), 이는 보수적으로 작고 충돌 위험이 거의 없습니다. 그러나 그럴 수도 토토 사이트. 복잡한 기능을 실행하기에는 너무 작습니다. 만 슈퍼유저는 이 설정을 변경할 수 토토 사이트.

설정max_stack_깊이실제 커널 제한보다 높으면 폭주 재귀 함수는 개인을 충돌시킬 수 있습니다 백엔드 프로세스. 다음과 같은 플랫폼에서토토 사이트커널을 결정할 수 있습니다 제한이 있으므로 서버에서는 이 변수 설정을 허용하지 않습니다. 안전하지 않은 값으로. 그러나 모든 플랫폼이 이를 제공하는 것은 아닙니다. 정보가 있으므로 선택 시 주의가 필요합니다. 값.

18.4.2. 커널 리소스 사용법

max_files_per_process (정수)

동시에 열려 있는 파일의 최대 개수를 설정합니다 각 서버 하위 프로세스에 허용됩니다. 기본값은 1개입니다. 수천 개의 파일. 커널이 안전을 시행하는 경우 프로세스당 제한이 있으므로 걱정할 필요가 없습니다. 설정. 그러나 일부 플랫폼(특히 대부분의 BSD)에서는 시스템) 커널은 개별 프로세스가 시스템이 실제로 지원할 수 있는 것보다 더 많은 파일을 엽니다. 많은 프로세스가 모두 그 만큼의 파일을 열려고 시도하는 경우 당신이 보고 있는 자신을 발견하세요"너무 많이 열려토토 사이트. 파일"실패, 이 설정을 줄여보세요. 이 매개변수는 서버 시작 시에만 설정할 수 있습니다.

shared_preload_libraries (문자열)

이 변수는 하나 이상의 공유 라이브러리를 지정합니다. 서버 시작 시 미리 로드됩니다. 예를 들어,'$libdir/mylib'원인이 될 것입니다mylib.so(또는 일부 플랫폼에서는,mylib.sl)가 사전 로드됩니다. 설치의 표준 라이브러리 디렉토리. 모든 도서관 이름은 큰따옴표로 묶이지 않는 한 소문자로 변환됩니다. 둘 이상의 라이브러리를 로드해야 하는 경우 해당 라이브러리를 분리하십시오. 쉼표가 있는 이름. 이 매개변수는 다음에서만 설정할 수 있습니다. 서버 시작.

토토 사이트절차적 언어 라이브러리는 이런 방식으로 미리 로드될 수 토토 사이트. 일반적으로 구문을 사용하여'$libdir/plXXX'어디에서XXXispgsql, , tcl, 또는파이썬.

공유 라이브러리를 미리 로드하면 라이브러리가 시작됩니다. 라이브러리를 처음 사용할 때 시간을 피할 수 있습니다. 그러나, 각각의 새 서버 프로세스를 시작하는 데 걸리는 시간이 늘어날 수 있습니다. 해당 프로세스가 라이브러리를 전혀 사용하지 않더라도 약간 그렇습니다. 그래서 이 매개변수는 다음과 같은 라이브러리에만 권장됩니다. 대부분의 세션에서 사용됩니다.

참고:Windows 호스트에서 서버 시작 시 라이브러리는 시간을 줄이지 않습니다. 각각의 새로운 서버 프로세스를 시작하는 데 필요합니다. 각각 서버 프로세스는 모든 사전 로드 라이브러리를 다시 로드합니다. 그러나shared_preload_libraries아직 일부 공유 라이브러리 때문에 Windows 호스트에서 유용합니다. 소요되는 특정 작업을 수행해야 할 수도 토토 사이트. postmaster start에 배치합니다(예: 공유 도서관은 경량 잠금 장치를 예약해야 할 수도 토토 사이트. 공유 메모리를 사용하면 그 이후에는 그렇게 할 수 없습니다. 우체국장이 시작했습니다).

지정된 라이브러리를 찾을 수 없으면 서버는 시작하지 못했습니다.

모든 토토 사이트 지원 라이브러리에는"마법 블록"보장을 위해 확인되었습니다. 호환성. 이러한 이유로 토토 사이트이 아닌 라이브러리는 이 방법으로는 로드할 수 없습니다.

18.4.3. 비용 기반 진공 지연

실행 중PostgreSQL : 문서 : 9.0 : 와이즈 토토그리고PostgreSQL : 문서 : 9.0 : 토토 커뮤니티명령, 시스템 추정치를 추적하는 내부 카운터를 유지합니다. 수행되는 다양한 I/O 작업의 비용. 때 누적 비용이 한도에 도달함(다음으로 지정됨)vacuum_cost_limit), 다음을 수행하는 프로세스 지정된 대로 작업이 짧은 시간 동안 절전 모드로 전환됩니다. 으로vacuum_cost_delay. 그러면 그럴 것이다 카운터를 재설정하고 실행을 계속합니다.

이 기능의 목적은 관리자가 다음을 수행할 수 있도록 하는 것입니다. 동시 데이터베이스에 대한 이러한 명령의 I/O 영향을 줄입니다. 활동. 중요하지 않은 상황이 많이 있습니다 그 유지 관리 명령은 다음과 같습니다.진공그리고분석빨리 끝내세요; 그러나, 일반적으로 이러한 명령이 실행되지 않는 것이 매우 중요합니다. 시스템의 기능을 크게 방해합니다. 다른 데이터베이스 작업을 수행합니다. 비용 기반 진공 지연 관리자가 이를 달성할 수 있는 방법을 제공합니다.

이 기능은 수동으로 발행된 경우 기본적으로 비활성화되어 토토 사이트.진공명령. 활성화하려면 다음을 설정하세요.vacuum_cost_delay변수를 0이 아닌 값입니다.

vacuum_cost_delay (정수)

프로세스가 수행되는 시간(밀리초) 비용 한도를 초과하면 잠자기 상태가 됩니다. 는 기본값은 0이며, 이는 비용 기반 진공 지연 기능. 양수 값을 사용하면 비용 기반이 가능합니다. 진공청소기. 많은 시스템에서 효과적인 수면 지연 해결은 10밀리초입니다. 설정vacuum_cost_delay값으로 10의 배수가 아닌 경우에는 동일한 결과가 나올 수 있습니다. 다음으로 높은 10의 배수로 설정합니다.

비용 기반 진공청소기를 사용할 때 적절한 값 에 대한vacuum_cost_delay있습니다 일반적으로 10~20밀리초 정도로 아주 작습니다. 진공의 리소스 소비 조정은 다음과 같이 수행하는 것이 가장 좋습니다. 다른 진공 비용 매개변수를 변경합니다.

vacuum_cost_page_hit (정수)

버퍼를 청소하는 데 드는 예상 비용은 다음에서 발견됩니다. 공유 버퍼 캐시. 잠그는 데 드는 비용을 나타냅니다. 버퍼 풀, 공유 해시 테이블을 조회하고 스캔 페이지의 내용. 기본값은 1입니다.

vacuum_cost_page_miss (정수)

필요한 버퍼를 진공 청소하는 데 드는 예상 비용 디스크에서 읽을 수 있습니다. 이는 자물쇠를 잠그려는 노력을 나타냅니다. 버퍼 풀, 공유 해시 테이블 조회, 읽기 원하는 블록을 디스크에서 차단하고 해당 내용을 스캔합니다. 는 기본값은 10입니다.

vacuum_cost_page_dirty (정수)

진공 장치를 수정할 때 부과되는 예상 비용입니다. 이전에 깨끗했던 블록. 그것은 여분의 것을 나타냅니다 더티 블록을 다시 디스크로 플러시하려면 I/O가 필요합니다. 기본값은 20입니다.

vacuum_cost_limit (정수)

청소를 유발하는 누적 비용 잠드는 과정. 기본값은 200입니다.

참고:특정 작업이 있습니다. 중요한 잠금이므로 최대한 빨리 완료되어야 합니다. 가능합니다. 이러한 기간에는 비용 기반 진공 지연이 발생하지 않습니다. 운영. 따라서 비용이 발생할 수 있습니다. 지정된 한도보다 훨씬 더 많이 축적됩니다. 피하려면 이러한 경우 쓸데없이 긴 지연이 발생하므로 실제 지연은 다음과 같습니다. 다음과 같이 계산됨vacuum_cost_delay * accumulated_balance / vacuum_cost_limit최대vacuum_cost_delay * 4.

18.4.4. 배경 작가

다음이라는 별도의 서버 프로세스가 있습니다.배경 작가, 그 기능은 발행입니다. 의 쓰기"더러운"(신규 또는 수정) 공유 버퍼. 서버가 프로세스하도록 공유 버퍼를 작성합니다. 사용자 쿼리를 처리하는 경우 쓰기를 기다릴 필요가 거의 없거나 전혀 없습니다. 발생합니다. 그러나 배경 작가는 네트를 발생시킵니다. I/O 로드가 전반적으로 증가합니다. 반복적으로 더러워진 페이지는 한 번만 기록될 수 있습니다. 체크포인트 간격마다 백그라운드 작성자가 이를 작성할 수 있습니다. 같은 간격으로 여러 번 더러워집니다. 는 이 하위 섹션에서 논의된 매개변수는 지역적 요구에 맞는 행동.

bgwriter_delay (정수)

다음 활동 라운드 사이의 지연을 지정합니다. 배경작가. 각 라운드에서 작가 문제는 글을 씁니다. 일부 더티 버퍼의 경우(에 의해 제어 가능) 다음 매개변수). 그런 다음 잠을 잔다.bgwriter_delay밀리초 단위로 반복됩니다. 기본값은 200밀리초(200ms). 많은 시스템에서 수면 지연의 효과적인 해결 방법은 10밀리초입니다. 설정bgwriter_delay에 10의 배수가 아닌 값은 동일할 수 있습니다. 결과는 10의 다음으로 높은 배수로 설정되는 것입니다. 이 매개변수는에서만 설정할 수 있습니다.토토 사이트.conf파일 또는 서버에 명령줄.

bgwriter_lru_maxpages (정수)

각 라운드마다 이만큼의 버퍼가 사용됩니다. 배경 작가가 쓴 것입니다. 이것을 0으로 설정 백그라운드 쓰기를 비활성화합니다(체크포인트 제외). 활동). 기본값은 100개 버퍼입니다. 이 매개변수는에서만 설정할 수 있습니다.토토 사이트.conf파일 또는 서버에 명령줄.

bgwriter_lru_multiplier (부동 소수점)

각 라운드에 기록된 더티 버퍼의 수는 다음과 같습니다. 필요한 새 버퍼 수에 따라 최근 라운드 동안 서버 프로세스에 의해. 평균 최근 요구사항에 다음을 곱합니다.bgwriter_lru_multiplier도착하다 필요한 버퍼 수 추정 다음 라운드 동안. 더티 버퍼는 다음까지 기록됩니다. 깨끗하고 재사용 가능한 버퍼가 많이 있습니다. (단, 그 이상은 안됩니다.bgwriter_lru_maxpages버퍼는 라운드별로 기록됩니다.) 따라서 1.0 설정은 다음을 나타냅니다."제때에"정책 예상되는 버퍼 수를 정확하게 기록합니다. 필요합니다. 값이 클수록 스파이크에 대한 완충 효과가 제공됩니다. 수요가 있는 반면 더 작은 값은 의도적으로 이탈합니다. 서버 프로세스에 의해 수행되는 쓰기입니다. 기본값은 2.0. 이 매개변수는에서만 설정할 수 있습니다.토토 사이트.conf파일 또는 서버에 명령줄.

더 작은 값bgwriter_lru_maxpages그리고bgwriter_lru_multiplier추가 I/O 감소 백그라운드 작성자로 인해 로드가 발생하지만 그럴 가능성이 더 높아집니다. 서버 프로세스는 스스로 쓰기 작업을 수행해야 합니다. 대화형 쿼리를 지연합니다.

18.4.5. 비동기식 행동

효과적인_io_concurrency (정수)

동시 디스크 I/O 작업 수를 설정합니다.토토 사이트기대할 수 있음 동시에 실행됩니다. 이 값을 높이면 개인이 수행할 수 있는 I/O 작업 수 증가토토 사이트세션 병렬로 시작하려고 시도합니다. 허용되는 범위는 1입니다. 1000으로 설정하거나 비동기 I/O 실행을 비활성화하려면 0으로 설정하세요. 요청합니다.

이 설정의 좋은 시작점은 숫자입니다. RAID 0 스트라이프 또는 RAID 1을 구성하는 별도의 드라이브 데이터베이스에 사용되는 미러입니다. (RAID 5의 경우 패리티 드라이브는 계산되지 않습니다.) 그러나 데이터베이스는 종종 실행된 여러 쿼리로 인해 사용 중입니다. 동시 세션에서는 더 낮은 값으로도 충분할 수 있습니다. 디스크 어레이를 바쁘게 유지하십시오. 필요한 것보다 높은 값 디스크를 계속 사용하면 추가 CPU만 발생하게 됩니다. 오버헤드.

메모리 기반 저장소와 같은 보다 이국적인 시스템의 경우 또는 버스 대역폭에 의해 제한되는 RAID 어레이, 올바른 값은 사용 가능한 I/O 경로의 수일 수 토토 사이트. 최상의 결과를 찾으려면 몇 가지 실험이 필요할 수 토토 사이트. 값.

비동기 I/O는 효과적인 방법에 따라 달라집니다.posix_fadvise함수, 일부는 운영 체제가 부족합니다. 해당 기능이 없는 경우 그런 다음 이 매개변수를 0이 아닌 다른 값으로 설정하면 오류가 발생합니다. 일부 운영 체제(예: Solaris), 해당 기능은 존재하지만 실제로는 존재하지 않습니다. 뭐든지 해.