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 Columns 9223 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 9223
PostgreSQL checkpoint 로그 읽기
작성자
김상기(ioseph)
작성일
2013-01-25 18:17
조회수
9,007

오래간 만에 글을 남깁니다. 

PostgreSQL 디스크 I/O 성능에 대한 튜닝을 위해서 보는 로그 가운데 하나가 checkpoint 작업에 대한 로그입니다. 

이 로그는 기본설정으로는 보이지 않습니다. 

checkpoint 로그를 보려면,

 

  1. postgresql.conf 파일에서 log_checkpoints 항목을 찾아서 그 값을 on으로 바꾼다.
  2. pg_ctl reload 명령으로 환경설정을 다시 로드한다.
  3. 로그 파일을 지켜본다.

로그 파일에는 checkpoint 작업을 시작한다는 로그와, 끝났다는 로그가 쌓입니다.

1. checkpoint starting: time

  • 여기서 time 이라는 단어는 checkpoint 작업이 어떤 작업 때문에 실행되는가에 대한 것을 설명합니다.
  • time: checkpoint_timeout 설정값에서 지정한 checkpoint 강제 실행 임계시간을 초과해서 실행되는 경우
  • xlog: checkpoint_segments 설정값에서 지정한 트랜잭션 로그 쪼가리 파일을 모두 다 사용해서 이 쪼가리 파일을 재활용하기 위해서 실행되는 경우
  • immediate force wait: pg_start_backup() 함수에서 강제로 체크포인트 작업을 진행하라고 지정해서 실행되는 경우
  • force wait: pg_start_backup() 함수에서 강제로 체크포인트 작업을 진행하라고 지정 안하고 실행되는 경우
  • shutdown immediate: 서버 중지 명령에 의해서 체크포인트 작업을 진행하는 경우

2. checkpoint complete: wrote 3397 buffers (55.3%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=268.190 s, sync=0.019 s, total=269.369 s; sync files=7, longest=0.016 s, average=0.002 s

  • shared_buffers 에 있는 데이터 블록 가운데 총 3397개의 블럭을 디스크로 기록했으며 그게 전체 공유 버퍼 가운데, 55.3% 차지했고, 
  • 0 개의 트랜잭션 로그 쪼가리 파일이 추가 되었으며, - 이번 체크포인트 작업으로 트랜잭션 재활용을 위한 트랜잭션 로그 쪼가리 파일을 새로 추가한 것은 없으며,
  • 트랜잭션 로그 쪼가리 파일을 지운 것도 없으며, 
  • 재활용을 위해서, 오래된 이름의 쪼가리 파일을 사용할 쪼가리 파일로 이름을 바꾸지도 않았으며,
  • 이 블록을 디스크게 기록하는 작업에서 총 268.190초 걸렸으며, 
  • OS file sync 작업에 0.019초 걸려고, 
  • 전체 269.369초 걸려고, 
  • 이 작업에 사용된 파일은 총 7개 였고,
  • sync 작업에 제일 오래 걸린 파일은 0.016초 걸려고, 
  • 평균 0.002초 걸렸다.

이렇게 수집된 자료를 보면, 이놈이 OS의 I/O 자원을 얼마나 쓰는지를 확인할 수 있습니다.

윗 작업을 예로 들면, 3397 * 8KB(블록 크기) = 약 27MB 메모리에 있는 정보를 268초 동안 디스크에 기록했으니, 계산하면 약 100KB/sec  디스크 쓰기 작업을 한 샘입니다. 

해당 OS의 최대 디스크 쓰기 속도를 감안하면, 이 체크포인트 작업의 디스크 쓰기 부하를 감안할 수 있습니다. 

 

그럼 이 디스크 쓰기 부하를 줄이는 방법

.....

다음에.

 

[Top]
No.
제목
작성자
작성일
조회
10389클라이언트 - 서버 프로토콜 버전 이야기
김상기
2023-03-08
438
9483PostgreSQL을 쓰면서 알아두면 좋은 팁 7가지
김상기
2014-11-18
7901
9244archive_mode on 기반 부분 복구에 대한 전략 [1]
김상기
2013-02-22
8123
9223PostgreSQL checkpoint 로그 읽기
김상기
2013-01-25
9007
9022PostgreSQL 대량 세션 [1]
김상기
2012-08-29
8998
8748PostgreSQL 9.0 리플리케이션 기능 사용기
김상기
2010-12-17
11683
7053나름대로 쓰는 PostgreSQL 약사 [1]
김상기
2007-02-21
13963
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다