728x90
반응형
PostgreSQL에서는 WAL의 쓰기 동작을 조정하는 몇 가지 매개변수를 통해 유사한 효과를 낼 수 있다.
이 값들을 통해 쓰기 성능을 개선할 수 있다. 단 이러한 설정 시, 재해 등으로 인해 데이터 손실 가능성이 생기게 된다.
다음은 관련 설정들이다:
1. wal_writer_delay
- WAL Writer 프로세스가 디스크로 WAL을 기록하기 전에 대기하는 시간(밀리초)을 설정
- 기본값: 200ms
- 더 큰 값을 설정하면 쓰기 빈도가 줄어들어 디스크 I/O 부하를 줄일 수 있다.
- 설정:
SET wal_writer_delay = '500ms';
2. wal_writer_flush_after
- WAL Writer가 데이터를 디스크로 flush하기 전에 누적할 수 있는 최대 데이터 양(바이트)을 지정
- 기본값: 1MB
- 더 큰 값을 설정하면 더 많은 데이터를 모은 후에 한 번에 기록한다.
- 설정:
SET wal_writer_flush_after = '4MB';
3. commit_delay
- 각 트랜잭션 커밋 후 WAL flush를 지연하는 시간을 지정한다(마이크로초).
- 여러 트랜잭션의 WAL을 묶어서 한 번에 기록하려는 경우 유용하다.
- 기본값: 0 (지연 없음)
- 설정:
SET commit_delay = 500; -- 500 microseconds
4. commit_siblings
- commit_delay와 함께 사용되며, WAL 쓰기 지연이 적용되기 전에 동시에 활성화된 다른 트랜잭션의 최소 개수를 지정
- 기본값: 5
- 설정:
SET commit_siblings = 10;
5. synchronous_commit
- 트랜잭션 커밋이 WAL flush와 동기화되는지 여부를 제어.
- 옵션:
- on: WAL 기록이 디스크에 동기화될 때까지 기다린다(기본값)
- off: WAL 기록을 비동기적으로 처리
- local: WAL flush가 로컬에서만 동기화
- 설정:
SET synchronous_commit = 'off';
반응형
'DB > PostgreSQL' 카테고리의 다른 글
PostgreSQL Connection이 90분만에 끊어지는 상황 해결하기 (1) | 2024.11.29 |
---|---|
PostgreSQL Vacuum 관련 쿼리 간단 모음 (2) | 2024.02.07 |