안녕하세요, 광복절이군요. 태극기 거는 것 잊지마시구요, 대한 독립 만세~.
어쩌다 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은 사용할 수 없습니다.
|