로컬 postgres 데이터베이스가있는 여러 가상 시스템에서 XenServer를 사용하고 있습니다. 모든 응용 프로그램이 사용되지 않고 데이터베이스가 유휴 상태 인 경우에도 각 vm은 지속적인 스토리지 네트워크 트래픽을 발생시켜 iscsi 스토리지 장치의 성능을 저하시킵니다.
실행 후 iotop
postgres 통계 수집기 프로세스 프로세스는 약 2MByte / s의 속도로 디스크에 지속적으로 기록됩니다.
그런 다음 편집하여 통계 수집을 비활성화했습니다 /etc/postgresql/8.4/main/postgresql.conf
.
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
track_activities = off
track_counts = off
...
http://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm에 제안 된대로 .
이로 인해 연속적인 쓰기가 제거되었지만 통계 추적을 끄는 데 단점이 있습니까?
아니면 디스크 / 네트워크 트래픽을 피하기 위해 pg_stat_tmp 디렉토리를 램 디스크에 배치해야합니까?
시스템은 postgres 8.4 및 약 50 개의 테이블이있는 약 20 개의 데이터베이스가있는 최신 데비안 6.0.7 (짜내기)이며 총 덤프 파일 크기는 100MB 미만입니다.
답변
PostgreSQL 업그레이드는 옵션이 아니기 때문에 pg_stat_tmp 디렉토리를 tmpfs 파일 시스템에 배치하려고 시도했는데 성능이 크게 향상되었습니다. 나는 현재 몇 달 동안 몇 달 동안 몇 가지 시스템에서이를 눈에 띄는 단점없이 실행하고 있습니다.
이렇게하려면 pg_stat_tmp를 / etc / fstab 파일에 tmpfs와 함께 마운트하십시오.
# <file system> <mount point> <type> <options> <dump> <pass>
tmpfs /var/lib/postgresql/8.4/main/pg_stat_tmp tmpfs defaults,noatime,mode=1777,uid=postgres,gid=postgres,nosuid,nodev 0 0
답변
PostgreSQL을 업그레이드하십시오. 최소한 최신 8.4 릴리스를 사용하고 있는지 확인하십시오. 그것이 해결되지 않고 그렇게하는 것이 실용적이라면 아마도 9.2로 업그레이드해야합니다. 통계 수집기 관련 문제는 8.4 이후로 해결 되었으며 약 1 년 후에 수명이 다할 것입니다 . pgsql-general mailing list archives 를 검색하여 자세한 정보를 찾을 수 있습니다 .
평소처럼 당신이 비록 당신은 8.4에서 9.2로 너무 많은 문제 업그레이드가 없어야 한다 각 0.0 릴리스 inbetween (9.0, 9.1 및 9.2)의 릴리스 노트의 업그레이드 섹션을 참조하십시오. standard_conforming_strings
및에 특히주의하십시오 bytea_output
.
답변
여기에도 같은 문제가 있습니다. 나는 또한 비활성화 track_*
했다.
부작용은 autovacuum
이 수집 된 데이터를 사용하여 발생한다는 것입니다.
그래서, 나는 매일 밤 일정을 관리합니다 vacuumdb
.
다른 해결책은 autovacuum_naptime
시스템을 정지시킬만큼 충분히 높게 설정 하는 것입니다.