급한 질문 몇가지 올립니다.
시스템 환경은 P2, 1G 에 FreeBSD 7.2, Posgresql 8.3 을 사용하고 있습니다.
1. 특정 테이블이 심하면 초당 몇십번에 업데이트가 일어납니다. 이럴 경우 채널 상태가 <idle> in transaction 으로 채널을 더 이상 사용할 수 없습니다.
채널 연결은 로컬 파이프 연결입니다. DB 및 어플리케이션에서 오토커밋을 사용안함으로 변경하였구요.. 그래도 문제는 마찬가지구요..
누가 그러던데 로컬 파이프 연결을 IO 리소스를 많이 먹기 때문에 TCP/IP 접속을 하라구 하던데 바꾸면 좀 나아질까요??? 바꿀려면 unixODBC 설정 값을 바꿔야 할까요??
2. 사용하고 있는 시스템의 통계 정보 즉 튜플의 생성, 삽입, 갱신 정보를 초기화 할 수 있는 방법이 있으까요?? Vacuum full 해도 마찬가지 이네요..
쌩초보가 고수님들의 답변 목빠지게 기다리고 있겠습니다.
감사합니다.
max_connections = 200 # (change requires restart)
shared_buffers = 64MB # min 128kB or max_connections*16kB
work_mem = 1MB # min 64kB
maintenance_work_mem = 32MB # min 1MB
max_fsm_pages = 204800 # min max_fsm_relations*16, 6 bytes each
vacuum_cost_delay = 0 # 0-1000 milliseconds
vacuum_cost_page_hit = 1 # 0-10000 credits
vacuum_cost_page_miss = 10 # 0-10000 credits
vacuum_cost_page_dirty = 20 # 0-10000 credits
vacuum_cost_limit = 200 # 1-10000 credits
wal_buffers = 64kB # min 32kB
# (change requires restart)
enable_bitmapscan = on
enable_hashagg = on
enable_hashjoin = on
enable_indexscan = on
enable_mergejoin = on
enable_nestloop = on
enable_seqscan = on
enable_sort = on
enable_tidscan = on
geqo = on
geqo_threshold = 12
geqo_effort = 5 # range 1-10
geqo_pool_size = 0 # selects default based on effort
geqo_generations = 0 # selects default based on effort
geqo_selection_bias = 2.0 # range 1.5-2.0
default_statistics_target = 10 # range 1-1000
constraint_exclusion = off
from_collapse_limit = 8
join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
# On FreeBSD, this is a performance hog, so keep it off if you need speed
update_process_title = off
autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least that time.
autovacuum_max_workers = 3 # max number of autovacuum subprocesses
autovacuum_naptime = 1min # time between autovacuum runs
autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
autovacuum_vacuum_cost_delay = 20 # default vacuum cost delay for
# autovacuum, -1 means use
# vacuum_cost_delay
autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------
#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
# Note: Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions) |