PI는 pg_stat_statements 지표를 사용하여 운영 모니터링에 사용되는데 해당 지표들은 다음과 같은 내용의 통계를 보여준다.
Rows /call : 호출당 Row 수
Avg Latency/call : 호출당 처리 시간
Blk hit/call : 호출당 공유 버퍼에서 읽은 블록 수
Bli reads/call : 호출당 디스크에서 읽은 불록 수
Read time/call : 호출당 디스크에서 읽은 시간
Shared Blocks (공유 블록)
- 대상: 일반 테이블, 인덱스, 시스템 카탈로그
- 특징: 모든 백엔드 프로세스가 공유하는 shared_buffers에 저장
- 용도: 영구 데이터, 여러 세션이 동시 접근 가능
Local Blocks (로컬 블록)
- 대상: 임시 테이블, 임시 인덱스, 정렬/해시 작업용 임시 파일 (명시적으로 사용한 temp 테이블)
- 특징: 각 세션별 전용 버퍼(temp_buffers)에 저장
- 용도: 세션 전용 데이터, 다른 세션에서 접근 불가
Temps Blocks (임시 블록)
대상 : 정렬, 집계, 해시 등의 작업으로 인해 사용되는 임시 테이블 공간
Temp_blk_hit : 메모리 부족으로 인하여 쿼리에서 사용되는 임시 테이블 캐시 히트 수
Temp_blk_reads : 메모리 부족으로 인하여 쿼리에서 사용되는 임시 테이블 읽기 수
PostgreSQL 아키텍처:
┌─────────────────────────────────────────────────┐
│ SHARED MEMORY (공유 메모리) │
│ ┌─────────────────────────────────────────────┐ │
│ │ shared_buffers │ │ ← Shared Blocks 저장
│ │ - 일반 테이블, 인덱스 │ │
│ │ - 모든 백엔드가 공유 │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ LOCAL MEMORY (백엔드별 메모리) │
│ ┌─────────────────────────────────────────────┐ │
│ │ temp_buffers │ │ ← Local Blocks 저장 ⭐
│ │ - CREATE TEMP TABLE 전용 │ │ (명시적 임시테이블)
│ └─────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────┐ │
│ │ work_mem │ │ ← Temp Blocks 저장 ⭐
│ │ - 정렬/해시/집계 작업 │ │ (work_mem 오버플로우)
│ │ - 초과시 임시파일 생성 │ │
│ └─────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────┐ │
│ │ maintenance_work_mem │ │
│ │ - VACUUM, CREATE INDEX 등 │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
'공부 > DATABASE' 카테고리의 다른 글
| [ElastiCache] Auth 와 TLS (0) | 2025.11.22 |
|---|---|
| [Aurora Postgresql] VACUUM 정리 (0) | 2025.10.08 |
| [Aurora PostgreSQL] 입력 지연 장애 복기 (0) | 2025.10.08 |
| [Aurora, Elasticache] 대역폭 관련 (0) | 2025.10.08 |
| [Aurora PostgreSQL] Toast 테이블과 VACUUM (0) | 2025.10.08 |