database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 6349 게시물 읽기
No. 6349
pg_autovacuum.log 에서 에러메세지...
작성자
박순철(노가다맨)
작성일
2005-10-06 11:59
조회수
2,226

몇일전 우연히 pg_autovacuum.log 보니, 아래와 같이 에러메세지가 나오고 더이상 진행이 되지 않는것 같습니다.

 

시스템 시작시 아래 명령이 실행되도록 되어 있습니다.
/postgresql/bin/pg_autovacuum -U postgres -d 2 -L /postgresql/pg_autovacuum.log -D

 

기존 postgresql.conf 설정은 아래와 같이 되어 있구요...
#stats_row_level = true

 

stats_row_level = true 를 허용하라는것 같은데, 기존에는 주석처리 되어 있었는데도 잘 돌아가는듯 했거든요?

왜 갑자기 이런 메세지가 나오는지.. 어떻게 해결을 해줘야 하는지요?

그리고... stats_row_level 을 사용하면, 어느정도의 성능저하가 있는지 궁금합니다.


.
.
.
.
[2005-07-03 23:52:30 KST] DEBUG: 9178 All DBs checked in: 49655 usec, will sleep for 300 secs.
[2005-07-03 23:57:30 KST] DEBUG: updating the database list
[2005-07-03 23:57:30 KST] DEBUG: 9179 All DBs checked in: 67188 usec, will sleep for 300 secs.
[2005-07-04 00:02:30 KST] DEBUG: 9180 All DBs checked in: 53506 usec, will sleep for 300 secs.
[2005-07-04 00:07:30 KST] DEBUG: updating the database list
[2005-07-04 00:07:30 KST] DEBUG: 9181 All DBs checked in: 74375 usec, will sleep for 300 secs.
[2005-07-04 00:12:30 KST] DEBUG: 9182 All DBs checked in: 49567 usec, will sleep for 300 secs.
[2005-07-04 00:17:30 KST] DEBUG: updating the database list
[2005-07-04 00:17:30 KST] DEBUG: 9183 All DBs checked in: 67993 usec, will sleep for 300 secs.
[2005-07-04 00:22:30 KST] ERROR: Failed connection to database template1 with error: FATAL: the database system is shutting down
.
[2005-07-04 00:22:30 KST] ERROR: Cannot connect to template1, exiting.
[2005-09-28 01:44:20 KST] INFO: Printing command_args
[2005-09-28 01:44:20 KST] INFO: args->host=(null)
[2005-09-28 01:44:20 KST] INFO: args->port=(null)
[2005-09-28 01:44:20 KST] INFO: args->username=postgres
[2005-09-28 01:44:20 KST] INFO: args->password=(null)
[2005-09-28 01:44:20 KST] INFO: args->logfile=/postgresql/pg_autovacuum.log
[2005-09-28 01:44:20 KST] INFO: args->daemonize=1
[2005-09-28 01:44:20 KST] INFO: args->sleep_base_value=300
[2005-09-28 01:44:20 KST] INFO: args->sleep_scaling_factor=2.000000
[2005-09-28 01:44:20 KST] INFO: args->vacuum_base_threshold=1000
[2005-09-28 01:44:20 KST] INFO: args->vacuum_scaling_factor=2.000000
[2005-09-28 01:44:20 KST] INFO: args->analyze_base_threshold=500
[2005-09-28 01:44:20 KST] INFO: args->analyze_scaling_factor=1.000000
[2005-09-28 01:44:20 KST] INFO: args->av_vacuum_cost_delay=(default)
[2005-09-28 01:44:20 KST] INFO: args->av_vacuum_cost_page_hit=(default)
[2005-09-28 01:44:20 KST] INFO: args->av_vacuum_cost_page_miss=(default)
[2005-09-28 01:44:20 KST] INFO: args->av_vacuum_cost_page_dirty=(default)
[2005-09-28 01:44:20 KST] INFO: args->av_vacuum_cost_limit=(default)
[2005-09-28 01:44:20 KST] INFO: args->debug=2
[2005-09-28 01:44:22 KST] INFO: dbname: template1
[2005-09-28 01:44:22 KST] INFO: oid: 1
[2005-09-28 01:44:22 KST] INFO: username: postgres
[2005-09-28 01:44:22 KST] INFO: password: (null)
[2005-09-28 01:44:22 KST] INFO: conn is valid, (connected)
[2005-09-28 01:44:22 KST] INFO: default_analyze_threshold: 1000
[2005-09-28 01:44:22 KST] INFO: default_vacuum_threshold: 500
[2005-09-28 01:44:22 KST] ERROR: GUC variable stats_row_level must be enabled.
[2005-09-28 01:44:22 KST] Please fix the problems and try again.
[2005-10-04 16:35:50 KST] INFO: Printing command_args
[2005-10-04 16:35:50 KST] INFO: args->host=(null)
[2005-10-04 16:35:50 KST] INFO: args->port=(null)
[2005-10-04 16:35:50 KST] INFO: args->username=postgres
[2005-10-04 16:35:50 KST] INFO: args->password=(null)
[2005-10-04 16:35:50 KST] INFO: args->logfile=/postgresql/pg_autovacuum.log
[2005-10-04 16:35:50 KST] INFO: args->daemonize=1
[2005-10-04 16:35:50 KST] INFO: args->sleep_base_value=300
[2005-10-04 16:35:50 KST] INFO: args->sleep_scaling_factor=2.000000
[2005-10-04 16:35:50 KST] INFO: args->vacuum_base_threshold=1000
[2005-10-04 16:35:50 KST] INFO: args->vacuum_scaling_factor=2.000000
[2005-10-04 16:35:50 KST] INFO: args->analyze_base_threshold=500
[2005-10-04 16:35:50 KST] INFO: args->analyze_scaling_factor=1.000000
[2005-10-04 16:35:50 KST] INFO: args->av_vacuum_cost_delay=(default)
[2005-10-04 16:35:50 KST] INFO: args->av_vacuum_cost_page_hit=(default)
[2005-10-04 16:35:50 KST] INFO: args->av_vacuum_cost_page_miss=(default)
[2005-10-04 16:35:50 KST] INFO: args->av_vacuum_cost_page_dirty=(default)
[2005-10-04 16:35:50 KST] INFO: args->av_vacuum_cost_limit=(default)
[2005-10-04 16:35:50 KST] INFO: args->debug=2
[2005-10-04 16:35:52 KST] INFO: dbname: template1
[2005-10-04 16:35:52 KST] INFO: oid: 1
[2005-10-04 16:35:52 KST] INFO: username: postgres
[2005-10-04 16:35:52 KST] INFO: password: (null)
[2005-10-04 16:35:52 KST] INFO: conn is valid, (connected)
[2005-10-04 16:35:52 KST] INFO: default_analyze_threshold: 1000
[2005-10-04 16:35:52 KST] INFO: default_vacuum_threshold: 500
[2005-10-04 16:35:52 KST] ERROR: GUC variable stats_row_level must be enabled.
[2005-10-04 16:35:52 KST] Please fix the problems and try again

 

읽어주셔서 감사합니다.

이 글에 대한 댓글이 총 2건 있습니다.

stats_row_level은 기본적으로 false 상태입니다. 반드시 true가 되도록 설정해주셔야 합니다. 누군가가 stats_row_level=true로 되어 있던 것을 comment out 한 것 같네요. 초기 설정 파일에는

 

#stats_row_level = false

 

이렇게 되어 있습니다.

 

그리고 stats_start_collector와 stats_row_level이 true가 아니면 auto_vacuum은 작동하지 않습니다. auto_vacuum이 언제 어느 table을 vacuum할지를 판단하는 통계값이 이 설정을 true로 해야만 생성되기 때문이지요.

 

stat collector를 실행시키면 약간의 DB 부하가 생기는 것으로 압니다. 일반적인 질의에서는 활성화 시켰을 때와 그렇지 않았을 때의 차이가 미미하지만 select now() 같이 실제 I/O가 발생하지 않는 쿼리의 경우는 많이 영향을 준다고 합니다. 이말은 select now()나 select 1+2 같은 쿼리가 엄청나게 느려진다는 뜻이 아니라 이런 종류의 쿼리가 워낙 빨리 실행되기 때문에 통계를 활성화됨으로써 추가적으로 소요하게 되는 시간이 상대적으로 크게 영향을 주는 것 처럼 보인다는 말로 해석됩니다. 통계를 내는데 0.01초가 걸린다고 가정을 했을 때에 실행하는데 1초 걸리는 쿼리의 경우 단지 1%의 성능 저하가 있는것이지만 0.02초 걸리는 쿼리의 경우 50%의 성능 저하가 된다고 볼 수 있다는 말이지요.

 

이렇게 실제 자료를 다루지 않는 쿼리를 단기간에 다량으로 처리하는 아주 특별한 경우가 아니면 통계를 얻음으로 인해서 생기는 편리함이 서버 부하의 문제를 상쇄 할 것으로 생각합니다.

 

 

박성철(gyumee)님이 2005-10-07 17:15에 작성한 댓글입니다.
이 댓글은 2005-10-07 17:20에 마지막으로 수정되었습니다.

네.. 알려주신대로 "true" 로 설정했습니다.

 

이제 체감속도를 느껴봐야겠네요.

 

정말 감사합니다. ^^

박순철(노가다맨)님이 2005-10-12 21:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6358사용자 계정에 하나의 디비만 접근 가능하도록 [2]
왕초보
2005-10-10
2456
6357통합게시판에서 필드별 최근 5개의 리스트 값 뽑아 올려면?? [2]
박기원
2005-10-10
2166
6356급합니다..도와주세요...ㅠㅠ [1]
장하영
2005-10-08
2025
6349pg_autovacuum.log 에서 에러메세지... [2]
박순철
2005-10-06
2226
6348PSQL이 공간부족이란 메세지를 뿌리고 접속을 목합니다.(fork) [1]
오진미
2005-10-05
2781
6347[질문]pgOleDb설치 및 접속 후 insert시 에러
따꿍
2005-10-04
2011
6346[질문]Cygwin 이용해서 PostgreSQL을 쓸려고 하는데요... [3]
김성은
2005-10-03
2203
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다