이 문서는 지원되지 않는 버전의 토토 꽁 머니을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다사설 토토 PostgreSQL : 문서 : 17 : 19.4. 자원버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

18.4. 자원 소비

18.4.1. 메모리

shared_buffers(정수)

데이터베이스 서버가 공유에 사용하는 메모리 양을 설정합니다. 메모리 버퍼. 기본값은 일반적으로 128 메가 바이트입니다 (128MB)이지만 커널 설정이 적을 수 있습니다 그것을 지원하지 않습니다 (initdb). 이 설정은 128 이상이어야합니다 킬로 바이트. (의 비 디폴트 값blcksz최소값을 변경하십시오.) 그러나 설정은 훨씬 높습니다 최소는 일반적으로 좋은 성능을 위해 필요합니다. 이 매개 변수 서버 시작시에만 설정할 수 있습니다.

1GB 이상의 RAM이있는 전용 데이터베이스 서버가있는 경우 합리적인 시작 가치shared_buffers는 시스템의 메모리의 25%입니다. 큰 설정조차도가있는 워크로드가 있습니다.shared_buffers효과적이지만토토 꽁 머니또한 의존합니다 운영 체제 캐시, 더 이상의 할당은 RAM의 40% 이상shared_buffers의지 적은 양보다 더 잘 작동합니다. 더 큰 설정shared_buffers일반적으로 해당해야합니다 증가Checkpoint_segments, 순서대로 많은 양의 신규 또는 더 긴 기간 동안 데이터 변경.

1GB 미만의 RAM이있는 시스템에서 더 적은 비율 램은 적절합니다. 운영을위한 적절한 공간을 떠나기 위해 체계. 또한 창에서 큰 값shared_buffers효과적이지 않습니다. 당신은 찾을 수 있습니다 더 나은 결과는 설정을 상대적으로 낮게 유지하고 사용합니다. 대신 운영 체제 캐시가 더 있습니다. 유용한 범위shared_buffersWindows Systems는입니다 일반적으로 64MB ~ 512MB.

temp_buffers(Integer)

각각이 사용하는 임시 버퍼의 최대 수를 설정합니다. 데이터베이스 세션. 이들은 만 사용되는 세션-로컬 버퍼입니다 임시 테이블에 대한 액세스. 기본값은 8 메가 바이트입니다 (8MB). 설정은 내에서 변경 될 수 있습니다 개별 세션, 그러나 임시 첫 사용 전만 세션 내 테이블; 후속 값을 변경하려는 시도 그 세션에는 영향을 미치지 않을 것입니다.

세션은 필요에 따라 임시 버퍼를 할당합니다. 에 의해 주어진 한도temp_buffers. 비용 실제로 많은 것을 필요로하지 않는 세션에서 큰 가치를 설정 임시 버퍼는 버퍼 디스크립터 또는 약 64 바이트입니다. 증분 당temp_buffers. 그러나 만약 버퍼는 실제로 추가 8192 바이트가 토토 꽁 머니됩니다. 그것을 위해 (또는 일반적으로blcksz바이트).

max_prepared_transactions(Integer)

에있을 수있는 최대 트랜잭션 수를 설정합니다"준비"동시에 상태 (참조PostgreSQL : 문서 : 9.3 : 거래 스포츠 토토 베트맨). 이 매개 변수를 0으로 설정하면 (기본값 인) 준비된 전환 기능. 이 매개 변수는에서만 설정할 수 있습니다 서버 시작.

준비된 트랜잭션을 사용할 계획이 없다면 우발적 인 생성을 방지하기 위해 매개 변수를 0으로 설정해야합니다. 준비된 거래. 준비된 거래를 사용하는 경우 귀하는 귀하입니다 아마 원할 것입니다max_prepared_transactions최소한max_connections, 모든 세션이 준비된 거래가 준비 될 수 있도록.

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

work_mem(정수)

내부 정렬에서 사용할 메모리의 양을 지정합니다. 임시 디스크 파일에 작성하기 전에 작동 및 해시 테이블. 값 기본값은 하나의 메가 바이트 (에 대한 기본값을 기본으로합니다.1MB). 복잡한 쿼리의 경우 여러 종류 또는 해시 작업에 유의하십시오. 병렬로 실행 중일 수 있습니다. 각 작업은 사용할 수 있습니다 이 값이 쓰기 시작하기 전에 지정되는 많은 메모리 임시 파일로의 데이터. 또한 여러 달리기 세션이있을 수 있습니다 그러한 작업을 동시에 수행합니다. 따라서 총 기억 사용 된 것은 여러 번이 될 수 있습니다.work_mem; 이 사실을 염두에 두어야합니다 값을 선택할 때. 정렬 작업은에 사용됩니다.주문 by, 별도의및 합병 결합. 해시 테이블은 해시 조인, 해시 기반에서 사용됩니다 집계 및 해시 기반 처리in서브 쿼리.

maintenance_work_mem(정수)

유지 보수에서 사용할 최대 메모리 양을 지정합니다. 와 같은 작업진공, 색인 생성알터 테이블 외국 키 추가. 기본값은 16 메가 바이트 (까지)16MB). 이러한 작업 중 하나만 가능하기 때문입니다 데이터베이스 세션과 설치에 의해 한 번에 실행되었습니다. 일반적으로 동시에 달리는 많은 사람들이없고 안전합니다. 이 값이보다 훨씬 큰 값을 설정하려면work_mem. 더 큰 설정은 성능을 향상시킬 수 있습니다 진공 청소기 및 데이터베이스 덤프 복원 용.

autovacuum이 실행될 때 최대autovacuum_max_workers이 메모리가 할당 될 수 있으므로 설정하지 않도록주의하십시오. 기본값이 너무 높습니다.

max_stack_depth(정수)

서버 실행의 최대 안전 깊이를 지정합니다 스택. 이 매개 변수의 이상적인 설정은 실제 스택입니다. 커널에 의해 시행되는 크기 제한 (ulimit -s또는 로컬 동등성), 안전 마진이 적습니다 메가 바이트 정도. 스택이기 때문에 안전 마진이 필요합니다 깊이가 서버의 모든 루틴에서 확인되지는 않지만 표현 평가와 같은 주요 잠재적 인 재구성 루틴. 기본 설정은 두 메가 바이트입니다 (2MB)는 보수적으로 작고 가능성이 낮습니다 위험 충돌. 그러나 실행을 허용하기에는 너무 작을 수 있습니다. 복잡한 기능. 수퍼 유저만이 설정을 변경할 수 있습니다.

설정max_stack_depth보다 높습니다 실제 커널 제한은 런 어웨이 재귀 함수가 개별 백엔드 프로세스를 충돌시킵니다. 플랫폼에서토토 꽁 머니커널 제한, 서버는이 변수가 설정하도록 허용하지 않습니다. 안전하지 않은 가치. 그러나 모든 플랫폼이 제공하는 것은 아닙니다 정보, 값을 선택하는 데주의를 기울여야합니다.

18.4.2. 디스크

temp_file_limit(Integer)

세션이 할 수있는 최대 디스크 공간을 지정합니다. 정렬 및 해시 임시 파일과 같은 임시 파일에 사용하거나 보류 커서의 저장 파일. 시도하는 거래 이 한도를 초과하면 취소됩니다. 값은 지정되어 있습니다 킬로 바이트 및-1(기본값)는 번호를 의미합니다 한계. 수퍼 유저만이 설정을 변경할 수 있습니다.

이 설정은 어떤 순간에 사용되는 총 공간을 제한합니다. 주어진에서 사용하는 모든 임시 파일토토 꽁 머니세션. 그것은 주목해야합니다 명시적인 임시 테이블에 사용되는 디스크 공간이 아닙니다. 쿼리 실행에 비하인드 스토리를 사용한 임시 파일not이것에 반대하십시오 한계.

18.4.3. 커널 리소스 용법

max_files_per_process(Integer)

허용되는 동시에 열린 파일의 최대 수를 설정합니다. 각 서버 서브 프로세스. 기본값은 1 천 파일입니다. 만약 커널은 프로세스 당 안전한 한도를 시행하고 있습니다. 이 설정에 대해 걱정합니다. 그러나 일부 플랫폼에서 (특히 대부분의 BSD 시스템), 커널은 개별 프로세스가 많은 것을 열 수있게합니다. 많은 프로세스가 있으면 시스템보다 더 많은 파일이 실제로 지원할 수 있습니다. 모두 많은 파일을 열려고 노력합니다. 자신을보고 있다면"너무 많은 열린 파일"실패, 시도 이 설정을 줄입니다. 이 매개 변수는 서버에서만 설정할 수 있습니다 시작.

shared_preload_libraries(String)

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

토토 꽁 머니절차 적 언어 라이브러리는 일반적으로 사용하여 이러한 방식으로 사전로드 될 수 있습니다. 통사론'$ libdir/plxxx'여기서xxxisPGSQL, Perl, TCL또는Python.

공유 라이브러리를 사전로드하여 라이브러리 시작 시간은 다음과 같습니다. 라이브러리가 처음 사용되는시기를 피합니다. 그러나 시작할 시간입니다 각각의 새로운 서버 프로세스는 그 경우에도 약간 증가 할 수 있습니다. 프로세스는 라이브러리를 사용하지 않습니다. 따라서이 매개 변수를 권장합니다 대부분의 세션에서 사용될 라이브러리에만 해당됩니다.

참고 :Windows 호스트에서 서버에서 라이브러리를 사전로드합니다 시작은 각 새 서버를 시작하는 데 필요한 시간을 줄이지 않습니다. 프로세스; 각 서버 프로세스는 모든 예압 라이브러리를 다시로드합니다. 하지만,shared_preload_libraries아직도 있습니다 일부 공유 라이브러리가 필요할 수 있으므로 Windows 호스트에서 유용합니다. Postmaster Start에서만 발생하는 특정 작업을 수행합니다. (예를 들어, 공유 라이브러리는 경량을 예약해야 할 수도 있습니다. 자물쇠 또는 공유 메모리를 공유하면 우체국 장 후에는 그렇게 할 수 없습니다. 시작했습니다).

지정된 라이브러리를 찾을 수없는 경우 서버가 실패합니다. 시작.

모든 토토 꽁 머니 지원 라이브러리는가 있습니다."매직 블록"보장하기 위해 확인되었습니다 호환성. 이러한 이유로, 비 포스트 그레스크 라이브러리는 그럴 수 없습니다 이런 식으로로드 됨.

18.4.4. 비용 기반 진공 지연

22196_22222PostgreSQL : 문서 : 9.3 : 와이즈 토토andPostgreSQL : 문서 : 9.3 : 토토 커뮤니티명령, 시스템 추정을 추적하는 내부 카운터를 유지합니다. 수행되는 다양한 I/O 운영 비용. 언제 누적 된 비용은 한도에 도달합니다 (VACUUM_COST_LIMIT), 작업이 지정된대로 작전은 짧은 시간 동안 잠을 자게됩니다.VACUUM_COST_DELAY. 그런 다음 재설정됩니다 카운터 및 계속 실행.

이 기능의 의도는 관리자가 감소 할 수 있도록하는 것입니다. 동시 데이터베이스 활동에 대한 이러한 명령의 I/O 영향. 중요하지 않은 상황은 와 같은 유지 관리 명령진공and분석신속하게 마무리하십시오. 그러나 그것은입니다 일반적으로 이러한 명령이 크게 표시되지 않는 것이 매우 중요합니다 시스템이 다른 데이터베이스를 수행 할 수있는 능력을 방해 운영. 비용 기반 진공 지연은 방법을 제공합니다 이를 달성하기위한 관리자.

이 기능은 기본적으로 수동으로 발행 된 것에 대해 비활성화되었습니다진공명령. 활성화하려면를 설정하십시오.VACUUM_COST_DELAY0이 아닌 변수 값.

VACUUM_COST_DELAY(Integer)

millseconds의 시간은 과정이 잠들 것입니다. 비용 제한이 초과 된 경우. 기본값은 0이고 비용 기반 진공 지연 기능을 비활성화합니다. 긍정적 인 가치 비용 기반 진공 청소기를 활성화하십시오. 많은 시스템에서 수면 지연의 효과적인 해상도는 10 밀리 초입니다. 환경VACUUM_COST_DELAY10 중 10 개는 다음과 같은 결과를 가질 수 있습니다. 다음으로 10의 더 높은 배수

비용 기반 진공 청소기를 사용할 때 적절한 값VACUUM_COST_DELAY보통 아주 작습니다. 아마도 10 ~ 20 밀리 초. 진공의 자원 조정 소비는 다른 진공 비용을 변경하여 가장 잘 수행됩니다. 매개 변수.

VACUUM_COST_PAGE_HIT(Integer)

공유에있는 버퍼를 진공 청소기로 비우기위한 예상 비용 버퍼 캐시. 버퍼 풀 잠금 비용을 나타냅니다. 공유 해시 테이블을 조회하고 페이지의 내용을 스캔하십시오. 그만큼 기본값은 하나입니다.

VACUUM_COST_PAGE_MISS(Integer)

읽어야하는 버퍼 진공 청소기 비용 디스크에서. 이것은 버퍼 풀을 잠그려는 노력을 나타냅니다. 공유 해시 테이블을 조회하고 원하는 블록을 읽으십시오. 디스크 및 콘텐츠를 스캔하십시오. 기본값은 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.5. 배경 작가

라는 별도의 서버 프로세스가 있습니다.배경 작가쓰기"더티"(신규 또는 수정) 공유 버퍼. 공유 버퍼를 작성하여 서버 프로세스를 작성합니다 사용자 쿼리 처리는 거의 없거나 쓰기를 기다릴 필요가 없습니다. 발생하다. 그러나 배경 작가는 전체적으로 순을 유발합니다 반복적으로 뿌려진 페이지는 그렇지 않으면 체크 포인트 간격 당 한 번만 작성됩니다 배경 작가는 더러워 질 때 여러 번 쓸 수 있습니다. 같은 간격. 이 하위 섹션에서 논의 된 매개 변수는 할 수 있습니다 지역의 필요에 대한 행동을 조정하는 데 사용됩니다.

bgwriter_delay(Integer)

배경에 대한 활동 라운드 간의 지연을 지정합니다 작가. 각 라운드에서 작가 문제는 몇 가지에 대한 글을 씁니다. 더러운 버퍼 (다음 매개 변수에 의해 제어 가능). 그럼 잠을 자고bgwriter_delay밀리 초, 그리고 반복. 버퍼 풀에 더러운 버퍼가 없으면 그러나 그것은에 관계없이 더 긴 수면에 들어갑니다bgwriter_delay. 기본값은 200입니다 밀리 초 (200ms). 많은 사람들에게 주목하십시오 시스템, 수면 지연의 효과적인 해상도는 10입니다 밀리 초; 환경bgwriter_delaya 10의 배수가 아닌 값은 다음과 같은 결과를 가질 수 있습니다. 다음 더 높은 배수로 10으로 설정합니다.이 매개 변수는 에서만 설정됩니다.토토 꽁 머니.conf파일 또는 서버 명령 줄에서.

bgwriter_lru_maxpages(Integer)

각 라운드 마다이 많은 버퍼는 배경 작가. 이것을 0으로 설정하면 배경이 비활성화됩니다 글쓰기. (별도로 관리되는 체크 포인트, 전용 보조 프로세스는 영향을받지 않습니다.) 기본값은입니다 100 버퍼. 이 매개 변수는에서만 설정할 수 있습니다.토토 꽁 머니.conf파일 또는 서버 명령에 선.

bgwriter_lru_multiplier(플로팅 가리키다)

각 라운드에 작성된 더러운 버퍼의 수는 다음과 같습니다. 서버 프로세스에 필요한 새로운 버퍼 수 최근 라운드 동안. 최근의 평균 요구는 곱합니다bgwriter_lru_multiplier동안 필요한 버퍼 수를 추정 다음 라운드. 더러운 버퍼는 많은 것이있을 때까지 쓰여집니다 깨끗하고 재사용 가능한 버퍼를 사용할 수 있습니다. (그러나 더 이상bgwriter_lru_maxpages버퍼가 될 것입니다 라운드당 작성.) 따라서 1.0의 설정은 a를 나타냅니다."제 시간에"정확히 쓰기 정책 필요한 버퍼의 수. 더 큰 값이 제공됩니다 수요가 급증하는 스파이크에 대한 일부 쿠션은 더 작은 값입니다 의도적으로 서버 프로세스에 의해 수행되도록 쓰기를 떠납니다. 그만큼 기본값은 2.0입니다. 이 매개 변수는에서만 설정할 수 있습니다.토토 꽁 머니.conf파일 또는 서버 명령에 선.

작은 값bgwriter_lru_maxpagesbgwriter_lru_multiplier감소 배경 작가로 인한 여분의 I/O로드이지만 더 많이 만드십시오. 서버 프로세스는 대화식 쿼리 지연.

18.4.6. 비동기 행동

exply_io_concurrency(정수)

동시 디스크 I/O 작업의 수를 설정합니다.토토 꽁 머니기대를 실행할 수 있습니다 동시에. 이 값을 높이면 I/O의 수가 증가합니다 개인의 운영토토 꽁 머니세션을 시작하려고 시도합니다 평행한. 허용 범위는 1 ~ 1000 또는 비활성화 할 0입니다. 비동기 I/O 요청 발행. 현재이 설정 만 비트 맵 힙 스캔에 영향을 미칩니다.

이 설정의 좋은 출발점은 별도의 수입니다. Raid 0 Stripe 또는 Raid 1 거울로 구성된 드라이브 데이터베이스. (RAID 5의 경우 패리티 드라이브를 계산해서는 안됩니다.) 그러나 데이터베이스가 종종 여러 쿼리로 바쁘다면 동시 세션에서는 더 낮은 값이 디스크 배열 바쁘다. 디스크를 바쁘게 유지하는 데 필요한 것보다 높은 값 추가 CPU 오버 헤드 만 발생합니다.

메모리 기반 스토리지 또는 RAID와 같은 이국적인 시스템의 경우 버스 대역폭으로 제한되는 배열은 올바른 값이 될 수 있습니다. 사용 가능한 I/O 경로 수. 일부 실험이있을 수 있습니다 최고의 가치를 찾는 데 필요합니다.

비동기 I/O는 효과적인 것에 따라 다릅니다posix_fadvise일부 작동하는 기능 시스템 부족. 함수가 존재하지 않으면 이것을 설정하십시오 0에 대한 매개 변수는 0 이외의 오류가 발생합니다. 일부 운영 체제 (예 : Solaris), 기능은 존재하지만 실제로 아무것도하지 않습니다.