postgresql 성능 매개 변수 설정 방식

Linux 서버 설정 조회
성능 을 향상 시 키 기 전에 서버 의 설정 정 보 를 잘 알 아야 한다.예 를 들 어 CPU,메모리,서버 버 전 등 이다.
시스템 버 전 정보 조회

root@ubuntu160:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
Linux 물리 CPU 개수,핵 수,논리 CPU 개수 보기

#     =   CPU   X     CPU    
#    CPU  =   CPU   X     CPU    X     
 
#     CPU  
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
#       CPU core   (   )
cat /proc/cpuinfo| grep "cpu cores"| uniq
 
#     CPU   
cat /proc/cpuinfo| grep "processor"| wc -l
메모리 정보 조회

cat /proc/meminfo
PostgreSQL 설정 매개 변수 보기 방식

--           
show all; 

PostgreSQL 성능 향상 중요 한 설정 매개 변수
이 표 는 인터넷 에서 정 리 된 것 이다.
옵션
기본 값
설명 하 다.
최적화 여부
원인.
max_connections
100
클 라 이언 트 연결 허용 최대 수
아니.
테스트 과정 에서 100 개의 연결 이 충분 하기 때문이다.
fsync
on
디스크 에 데 이 터 를 동기 화하 도록 강제 하 다
예.
시스템 의 IO 압력 이 매우 크기 때문에 다른 설정 의 영향 을 더욱 잘 테스트 하기 위해 매개 변 수 를 off 로 변경 합 니 다.
shared_buffers
24MB
얼마나 많은 메모리 가 PostgreSQL 에서 캐 시 데이터 에 사 용 될 수 있 는 지 결정 합 니 다(메모리 의 1/4 를 추천 합 니 다.메모리 의 1/2 를 초과 하지 않 습 니 다)
예.
IO 의 압력 이 매우 큰 상황 에서 이 수 치 를 높이 면 IO 를 줄 일 수 있다.
work_mem
1MB
내부 정렬 과 복잡 한 조 회 를 이 buffer 에서 완성 합 니 다.적당 하지 않 으 면 그만 두 어야 합 니 다.모든 연결 은 이렇게 큰 것 을 사용 해 야 합 니 다.
예.
정렬 등 작업 속 도 를 높이 고 IO 를 낮 추 는 데 도움 이 된다.
effective_cache_size
128MB
최적화 기 는 검색 에 사용 할 수 있 는 최대 메모리 와 shared 를 가정 합 니 다.buffers 와 무관 합 니 다(메모리 의 1/2 추천)
예.
설정 이 약간 크 고,최적화 기 는 순서 스 캔 이 아 닌 색인 스 캔 을 사용 하 는 경향 이 있 습 니 다.
maintenance_work_mem
16MB
여기 서 정의 하 는 메모 리 는 VACUUM 등 자원 을 많이 소모 하 는 명령 에 의 해 호출 될 때 만 사 용 됩 니 다.
예.
이 값 을 크게 조정 하면 명령 의 집행 을 가속 화 할 수 있다.
wal_buffer
768kB
로그 캐 시 영역 크기
예.
IO 를 낮 출 수 있 습 니 다.비교적 많은 병발 짧 은 사 무 를 만나면 commt 와delay
checkpoint_segments
3
wal log 의 최대 수량 설정(하나의 log 크기 는 16M)
예.
기본 48M 캐 시 는 심각 한 병목 입 니 다.기본적으로 10 이상으로 설정 해 야 합 니 다.
checkpoint_completion_target
0.5
checkpoint 의 완성 시간 을 나타 내 는 것 은 두 checkpoint 간격 N%내 에 완성 해 야 합 니 다.
예.
평균 기록 비용 을 낮 출 수 있 습 니 다.
commit_delay
0
트 랜 잭 션 을 제출 한 후,로 그 를 wal log 에 wal 로 기록 합 니 다.버퍼 가 디스크 에 기록 하 는 시간 간격 입 니 다.협조 가 필요 해 commtsibling
예.
한 번 에 여러 사 무 를 기록 하여 IO 를 줄 이 고 성능 을 향상 시 킬 수 있 습 니 다.
commit_siblings
5
트리거 commit 설정delay 의 병발 사무 수 는 병발 사무 에 따라 설정 합 니 다.
예.
IO 감소,성능 향상
물론 제 쪽 에 도 앞 에 직원 소인 이 정 리 했 습 니 다.어떻게 배치 하 는 지 보 겠 습 니 다.
PostgreSQL 설정 매개 변수 수정 방식
1.프로필 수정
프로필 C:\PostgreSQL\\data\pg 96\\postgresql.conf 에서 직접 수정 합 니 다.수정 하기 전에 원본 파일 을 백업 하 십시오.의외 와 내일 누가 먼저 올 지 모 르 기 때 문 입 니 다.수정 이 완료 되면 데이터 베 이 스 를 다시 시작 하 세 요.
2.명령 행 의 변경 방식

ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT }
예 를 들 어:우 리 는 지금 maintenance 를 수정 해 야 합 니 다.work_mem

--  
show all;
 
show maintenance_work_mem;
--           postgresql.conf,    postgresql.conf
ALTER SYSTEM SET maintenance_work_mem= 1048576;
 
--     
show maintenance_work_mem; 
 
--  postgresql.auto.conf     
ALTER SYSTEM SET maintenance_work_mem= default;
네,그럼 저희 가 하 겠 습 니 다.

cd /home/postgres/pgsql/data
cat postgresql.conf

superuser_reserved_connections = 3
unix_socket_directory = '/var/lib/pgsql/current/data/unix_socket'
unix_socket_permissions = 0700
log_min_duration_statement = 10000ms
 
deadlock_timeout = 5s
track_activity_query_size = 10000
stats_temp_directory = 'pg_stat_tmp'
 
autovacuum = on
log_autovacuum_min_duration = 0
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.max = 10000
pg_stat_statements.track = all
 
track_activities = on
track_counts = on
track_io_timing = on 
 
#log parameter
log_destination = 'csvlog'
logging_collector = on
log_directory = 'pg_log'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 10MB
log_checkpoints = on
log_lock_waits = on
 
#      
 
shared_buffers = 16384MB 
temp_buffers = 1024MB 
work_mem = 2048MB 
maintenance_work_mem = 4096MB
저장 하고 다시 시작 합 니 다.내 가 로 컬 테스트 하 는 기 계 는 마지막 라인 이 아니 기 때문에 마지막 라인 의 기 계 는 반드시 이렇게 사용 할 것 이다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기