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 7512 게시물 읽기
No. 7512
VACUUM처리시간에 대해서... 어려워서.;;;
작성자
초보
작성일
2008-09-02 17:29ⓒ
2008-09-04 11:01ⓜ
조회수
6,458

근근이 과제를 헤쳐나가고 있는 데이터 베이스 관리 초보입니다. ;;;
하루에 2천만건의 데이터가 쌓입니다.
계측 테이블에 대해서는 Insert, Select & Drop Table 가 이루어집니다.
하루 약 1백만건의 데이터 조작이 일어납니다.
마스터 테이블에 대해서는 Insert, Update, Delete 가 이루어집니다.
데이터 베이스가 사용하고 있는 디스크는 약 180G 정도입니다.

autovacuum을 쓸 때는, 아무리 백그라운드로 돈다하지만 서버에 부하가 걸립니다.
게다가, 설정탓인지 작업량이 많을 때 도는 경우가 많이 있습니다.
웹을 통해서 실시간으로 이용하는 사람들이 너무 느리다고... 말이 많아서 그만두었습니다.
그렇다고 않할 수도 없어서, 시일를 정해서 VACUUM 처리하는데, 시간이 너무 오래 걸립니다.
물론 이용자 분들도 불만입니다. ;;;
VACUUM로그를 보면 계측 테이블을 훝는데 시간이 많이 걸리는 것 같더군요.
계측테이블에 대해서는 VACUUM이 처리 된다고 한들 효과가 그다지 없을꺼라 생각됩니다.
물론, 트렌젝션(XID)문제때문에 어쩔수 없이 데이터베이스 단위 VACUUM처리를 하고있습니다.

좋은 해결 방법 없을까요? ㅜ.ㅜ 저로서는 해결 방법이 안보입니다. 이게 정상인가요? ;;;;

운영체제는 리눅스(커널2.6)입니다.
포스트그레버전은 8.2.X 입니다. 
포스트그레설정은 maintenance_work_mem 올려봤다가 효과 없어서 기본설정으로 다시 바꾸었고.
vacuum_cost_delay = 1 이고, 이외는 모두 기본 설정 그대로입니다.
서버스펙은 제논CPU X 2개 2GHz 캐쉬4M, 메모리 2G,
하드정보는 잘 모르겠습니다만, 디비가 있는 하드는 500G입니다.

그러고보니 서버 스펙이 좀 낮아보이네요;;; 서버 성능을 더 높여달라고 해야할까요;; ㅜ.ㅜ;;


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

vacuum 문제는 어느 DB나 똑같은 뜨거운 감자 같습니다.

아주 지능적으로 자료정리를 한다는 오라클쪽도 자료가 저렇게 움직인다면,

저 사양에서는 똑 같은 결과를 만들 것 같습니다.


일단은 8.3 쪽으로 옮겨가보시죠.

제가 일하고 있는 곳에서도 자료량이 비슷한데, 새벽이면 vacuum 작업으로 꽤나 버벅거리거든요.


8.3쪽으로 옮겨가면 좀 더 지능적으로 움직인다는데, 얼마나 개선될지는 모르겠습니다.

옮겨봐야 체감 속도를 알터이니.


사태가 심각하다면, 자료를 분리해 보는 것도 좋은 방법일듯합니다.

아니면 인덱스를 분리해보든지,


열심히 찾겠다 노력해도 안되면 뭐, 어쩔 수 없겠지만,

그 나름 얻는 것도 있겠죠. 해 보는 수 밖에요.

김상기(ioseph)님이 2008-09-03 14:00에 작성한 댓글입니다.

일반적인 이야기로

일단 메모리를 최대한 증설하는것이 좋을듯 합니다.

그리고 하드디스크 성능을 올려야 합니다 SATA 보다는 SAS가 좋을 듯 합니다.

그리고 DB머신은 웹머신과 분리되어있어야 좋을듯 합니다(이미 분리되어 있나요?)


그런데 아무 설정변경없이 기본설정으로 운영 가능한가요??

그냥님이 2008-09-03 18:16에 작성한 댓글입니다.
이 댓글은 2008-09-03 18:19에 마지막으로 수정되었습니다. Edit

답변 감사합니다.

김상기님께.
서버를 더 구입해서 분산 데이터 베이스를 구현하라는 말씀이신가요?
지금도 근근이 디비 관리하는 초보가 과연 그렇게 해서 잘 운영할 수 있을지 걱정이;;;
자료 분리나 인덱스 분리가 어떤건지 조금 더 귓뜸해주시지 않겠습니까?

그냥님께.
저도 한번은 성능 향상을 위해 설정을 건드려보았다가.
포스트그레가 기동하지 않는 사태가 발생해 놀란마음 건드려지기가 꺼려지네요.
유저 메뉴얼을 보면 기본 설정이 보수적으로 설정되어 있다고 본 것같은데.
보수적이라는 말이 안정적이라는 말 아닌가요?
1년정도 되었는데 뭐 그럭저럭;;; 운영되고 있습니다;;;


그리고.... 얼마전에 또...

VACUUM만 돌면 서버가 버벅버벅거려서... 사용자 상황 좀 좋아지라고...
현재 vacuum_cost_delay=1를 vacuum_cost_delay=100으로 설정했다가 VACUUM이 끝날 기미가 안보여서 뭐 잘못 될까봐 또 한번 가슴 졸였죠;
제가 잘 모르기때문에, 숙제같은게 아니라 일이라서 설정파일을 맘대로 하기가 힘듭니다.

저와 같은 경우의 분들 계시면 조금 더 조언을 구하고 싶습니다;;;
상황이 더 괴로운게 테스트 해볼수 있는 똑같은 환경의 서버가 없다는 것입니다.

초보님이 2008-09-04 10:14에 작성한 댓글입니다. Edit

vacuum 작업은 필요비용이니 vacumm 때문에 성능에 문제가 있다면 vacumm이 문제가 아닌 H/W가 문제라고 봐야 할 듯 합니다. (좀 야박하죠? ㅋㅋ)

 

CPU나 메모리도 중요하지만 Disk I/O의 대역폭이 더 중요하다고 생각하는데 그쪽을 한번 살펴보십시요. I/O를 적당히 분산시키신다면 효과를 보실 듯 합니다.

 

제 결론은 vacumm은 꼭 필요한 작업이니 vacumm 관련 설정을 손보시는 것도 해야 하지만 그것 보다는 충분한 H/W와 다른 DB 쿼리의 최적화에 신경을 쓰시는 것이 더 큰 효과를 얻으실 듯 합니다.

 

그런데 vacuum_cost_delay를 100으로 했다고 그렇게 느리던가요? 메뉴얼에는 10정도가 적당하다고 나오는데 저는 이 설정이 큰 영향을 주는 것 같지 않더라고요. 좌우간...vacuum이 주는 부하를 줄이려면 어쩔 수 없이 vacuum 실행 시간이 늘어날 수 밖에 없습니다. trade off인거죠.

박성철(gyumee)님이 2008-09-05 13:46에 작성한 댓글입니다.
이 댓글은 2008-09-05 13:53에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
7515[Q] cygwin에서 window로 설치된 postgresql 접근방법
정진기
2008-09-09
6148
7514postgresql 에서 oracle 로 옴기는 방법 [1]
유닉스
2008-09-06
6425
7513특정시간에 트리거실행방법 [1]
서정주
2008-09-05
6367
7512VACUUM처리시간에 대해서... 어려워서.;;; [4]
초보
2008-09-02
6458
7511원격접속에대해...고수님들 헬미요 ㅠㅠ [2]
김성태
2008-08-28
6650
7510tsquery 질문드립니다. [2]
tyro
2008-08-28
5906
7509postgresql 트리거 관련입니다. [6]
포스트
2008-08-25
6508
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다