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 7497 게시물 읽기
No. 7497
vacuum과 max_fsm_pages에 대해서...
작성자
성실
작성일
2008-08-15 10:12ⓒ
2008-08-15 10:15ⓜ
조회수
6,750

안녕하세요, 광복절이군요. 태극기 거는 것 잊지마시구요, 대한 독립 만세~. 

어쩌다 posrgreSQL DB를 관리하고 있는데요.

하루에 약 2천만건의 데이터가 삽입되고, 갱신되고 삭제되기도 하는 데이터베이스를 쓰고 있습니다.

VACUUM all full 을 하면 데이터베이스의 불필요한 영역을 물리적으로 정리한다고 들었고,

당연히 FSM에 대해서도 초기화 처리를 해준다고 생각했습니다만.

아래와 같은 메세지가 계속 나오는군요.


NOTICE:  number of page slots needed (256736) exceeds max_fsm_pages (200000)
HINT:  Consider increasing the configuration parameter "max_fsm_pages" to a value over 256736.


이해가 안되는 부분은 VACUUM ALL FULL이 처리된 후  VACUUM ALL을 처리 해 보았는데도 위와 같은 메세지가 나온다는 것 입니다.

물론 요구하는 값은 줄어 있지만요. 저 메세지가 안나오게 하려면 안나올 때 까지 VACUUM FULL 해야하는지요?

저 20만이라는 설정값도 처음 디폴트 2만에서 요구하는 의견대로 조금씩 올려주다보니... 20만까지 가게 된 것인데요. 

FSM 이라는게 불필요하게 된 영역에 대한 인덱스같은 역할이라고 생각하고 있는데요.

이거 값이 이렇게 까지 필요한 것인지 잘 모르겠습니다. 더 올려야하는지도 고민이구요.

마지막으로, VACUUM 의 처리 시간을 줄여줄 수 있는 방법이 없을까요?

매일 두번씩 VACUUM ALL을 하고 있고, 일요일에 VACUUM ALL FULL을 돌리고 있습니다.

정적인 시간을 정해서 vacuum을 처리하므로 autovacuum은 사용할 수 없습니다.

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

A proper FSM setting can eliminate or at least postpone your need to run VACUUM FULL and REINDEX. The best way to set it is as follows: 1) figure out the VACUUM (regular) frequency of your database based on write activity; 2) run the database under normal production load, and run VACUUM VERBOSE ANALYZE instead of VACUUM, saving the output to a file; 3) calculate the maximum total number of pages reclaimed between VACUUMs based on the output, and use that.

Alternately, if you are using Autovacuum, you can base this as a percentage of the total data pages in your database, to match the autovacuum percent. Regardless, little memory is required per page (about 6 bytes) so it's better to be generous than stingy.

Please note that databases with high “peak” activity (bursts of 1 million updates but nothing else for minutes or hours) this number can be impossible to tune perfectly. Inserted rows are not significant for FSM. Finally, if your database server is short on RAM, increasing FSM to needed values may be counter-productive.


출처가 어디 사이트인지는 모르겠네요  ^-^;; 암튼 코멘트인데요..
저렇데요 ㅜ.ㅜ;;

전 보통 1억으로 해 놓긴 한데.. ^-^;; 크게 설정해도 문제는 없더군요 ㅎㅎㅎ ㅜ.ㅜ;

김석래님이 2008-08-19 13:28에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7501- [4]
압피
2008-08-18
5806
7500postgresql ERdiagram 관련입니다. [1]
포스트
2008-08-18
6708
7499pgadmin III 관련입니다. [2]
유닉스
2008-08-16
7043
7497vacuum과 max_fsm_pages에 대해서... [1]
성실
2008-08-15
6750
7495pgpool, slony 등의 리플리케이션 방식에 관해서... [2]
PG입문
2008-08-14
7646
7494이중화가 가능할까요? [1]
신인식
2008-08-13
8231
7492콘솔환경에서의 select결과를 보다가 중단하려면 [2]
서정주
2008-08-12
6114
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다