PostgreSQL에서 "wait event"는 주로 성능 모니터링 및 튜닝에서 사용되는 개념이다.
이는 데이터베이스 시스템이 특정 이벤트를 완료할 때까지 대기하는 상태는 나타낸다.
PostgreSQL에서 대기 이벤트를 확인해서 현재 어떤 원인에 의해 이벤트가 발생하는지 확인할 수 있다.
PostgreSQL의 대기 이벤트를 조회하는 쿼리는 다음과 같다.
SELECT pid, usename, application_name, query, state, wait_event_type, wait_event
FROM pg_stat_activity
WHERE wait_event is NOT NULL;
PostgreSQL 대기 이벤트는 Wait Event Type과 Wait Event로 구분된다.
Wait Event Type이 상위 카테고리이고 Wait Event가 하위 카테고리라고 볼 수 있다.
우선 PostgreSQL의 Wait Event Type은 다음과 같다.
Wait Event Types
Wait Event Type | 설명 |
Activity | 서버 프로세스가 IDLE 상태이다. 이 이벤트 유형은 메인 프로세싱 Looping에서 활동을 기다리는 프로세스를 나타냄. |
BufferPin | 서버프로세스가 버퍼에 대한 액세스를 기다리고 있음을 나타냄. *만약 다른 프로세스가 해당 버퍼 데이터의 열린 커서를 보유하고 있는 경우 버퍼 핀 대기가 길어 질 수 있다. |
Client | 서버 프로세스가 사용자 애플리케이션에 연결된 소켓의 활동을 대기함. |
Extension | 서버 프로세스가 확장 모듈에 정의된 일부 조건을 대기함. |
IO | 서버 프로세스가 I/O 작업이 완료되기를 대기함. |
IPC | 서버 프로세스가 다른 서버 프로세스와의 상호 작용을 대기함. |
Lock | 서버 프로세스가 락(heavyweight)을 대기함. 주로 테이블과 같은 SQL Visible 객체를 보호함. |
LWLock | 서버 프로세스가 락(lightweight)을 대기함. 대부분 공유(Shared) 메모리의 특정 데이터 구조를 보호. |
Timeout | 서버 프로세스가 시간 초과가 만료되기를 대기함. |
위에서 설명한 Wait Event Type은 각 타입마다 상세 대기 이벤트를 가진다.
Activity 대기이벤트
Activity 대기이벤트 | 설명 |
ArchiverMain | 아카이버 프로세스의 메인 루프에서 대기 중. |
AutoVacuumMain | autovacuum 실행 프로그램 프로세스의 메인 루프에서 대기 중. |
BgWriterHibernate | BgWriter 프로세스에서 대기 중. (최대 절전 모드) |
BgWiterMain | BgWriter 프로세스의 메인 루프에서 대기 중. |
CheckpointerMain | checkpointer 프로세스의 메인 루프에서 대기 중. |
LogicalApplyMain | 논리적 복제 적용 프로세스의 메인 루프에서 대기 중. |
LogicalLauncherMain | 논리적 복제 실행 프로그램 프로세스의 메인 루프에서 대기 중. |
LogicalParallelApplyMain | 논리적 복제 병렬 적용 프로세스의 메인 루프에서 대기 중. |
RecoveryWalStream | 스트리밍 복구 중에 WAL을 전송받을 때까지 시작(startup) 프로세스의 메인 루프에서 대기 중. |
SysloggerMain | syslogger 프로세스의 메인 루프에서 대기 중. |
WalReceiverMain | WAL Receiver 프로세스의 메인 루프에서 대기 중. |
WalSenderMain | WAL Sender 프로세스의 메인 루프에서 대기 중. |
WalWriterMain | WAL Writer 프로세스의 메인 루프에서 대기 중. |
BufferPin 대기이벤트
BufferPin 대기이벤트 | 설명 |
BufferPin | 버퍼 핀(Exclusive)을 얻기 위해 대기 중 |
Client 대기이벤트
Cleint 대기이벤트 | 설명 |
ClientRead | 클라이언트에서 데이터 읽기를 대기 중. |
ClientWrite | 클라이언에 데이터 쓰기를 대기 중. |
GSSOpenServer | GSSAPI 세션을 설정하는 동안 클라이언트에서 데이터 읽기를 대기 중. |
LibPQWalReceiverConnect | WAL 수신기에서 원격 서버에 대한 연결을 대기 중. |
LibPQWalReceiverReceive | 원격 서버로부터 데이터를 수신하기 위해 WAL 수신기에서 대기 중. |
SSLOpenServer | 연결을 시도하는 동안 SSL을 대기 중. |
WalSenderWaitForWAL | WAL Sender 프로세스에서 WAL이 플러시 되기를 대기 중. |
WalSenderWriteData | WAL Receiver의 응답을 처리할 때 모든 활동을 WAL Sender 프로세스가 대기. |
Extension 대기이벤트
Extension 대기이벤트 | 설명 |
Extension | Extension을 대기 |
IO 대기이벤트
IO 대기이벤트 | 설명 |
BaseBackupRead | 기본 백업이 파일에서 읽기를 기다리는 중 |
BaseBackupSync | 기본 백업으로 작성된 데이터가 스토리지에 도달할 때까지 기다리는 중 |
BaseBackupWrite | 기본 백업이 파일에 쓰기를 기다리는 중 |
BufFileRead | 버퍼링된 파일에서 읽기를 기다리는 중 |
BufFileTruncate | 버퍼링된 파일이 Truncated될 때까지 기다리는 중 |
BufFileWrite | 버퍼링된 파일에 쓰기를 기다리는 중 |
ControlFileRead | pg_control 파일 읽기를 기다리는 중 |
ControlFileSync | pg_control 파일이 스토리지에 도달하기를 기다리는 중 |
ControlFileSyncUpdate | pg_control 파일 업데이트가 스토리지에 도달하기를 기다리는 중 |
ControlFileWrite | pg_control 파일에 쓰기를 기다리는 중 |
ControlFileWriteUpdate | pg_control 파일을 업데이트 하기 위해 쓰기를 기다리는 중 |
CopyFileRead | 파일 복사 작업 중 읽기를 기다리는 중 |
CopyFileWrite | 파일 복사 작업 중 쓰기를 기다리는 중 |
DSMAllocate | 동적 공유 메모리(dynamic shared memory) 세그먼트가 할당되기를 기다리는 중 |
DSMFillZeroWrite | 동적 공유 메모리(dynamic shared memory) 백업 파일을 0으로 채우기를 기다리는 중 |
DataFileExtend | 릴레이션 데이터 파일이 확장 되기를 기다리는 중 |
DataFileFlush | 릴레이션 데이터 파일이 스토리지에 도달할때까지 기다리는 중 |
DataFileImmediateSync | 릴레이션 데이터 파일이 스토리지에 즉시 동기화 되기를 기다리는 중 |
DataFilePrefetch | 릴레이션 데이터 파일에서 비동기 프리페치를 기다리는 중 |
DataFileRead | 릴레이션 데이터 파일에서 읽기를 기다리는 중 |
DataFileSync | 릴레이션 데이터 파일의 변경 사항이 스토리지에 도달하기를 기다리는 중 |
DataFileTruncate | 릴레이션 데이터 파일이 truncated 될때까지 기다리는 중 |
DataFileWrite | 릴레이션 데이터 파일에 쓰기를 기다리는 중 |
LockFileAddToDataDirRead | 데이터 디렉터리 락 파일에 라인을 추가하는 동안 읽기를 기다리는 중 |
LockFileAddToDataDirSync | 데이터 디렉터리 락 파일에 라인을 추가하는 동안 데이터가 스토리지에 도달할때까지 기다리는 중 |
LockFileAddToDataDirWrite | 데이터 디렉터리 락 파일에 라인을 추가하는 동안 쓰기를 기다리는 중 |
LockFileCreateRead | 데이터 디렉터리 락 파일을 생성하는 동안 읽기를 기다리는 중 |
LockFileCreateSync | 데이터 디렉터리 락 파일을 생성하는 동안 데이터가 스토리지에 도달할 때까지 기다리는 중 |
LockFileCreateWrite | 데이터 디렉터리 락 파일을 생성하는 동안 쓰기를 기다리는 중 |
LockFileReCheckDataDirRead | 데이터 디렉터리 락 파일을 다시 확인하는 동안 읽기를 기다리는 중 |
LogicalRewriteCheckpointSync | 체크포인트 중에 논리적 재작성 매핑이 스토리지에 도달할 때까지 기다리는 중 |
LogicalRewriteMappingSync | 논리적 재작성 중에 매핑 데이터가 스토리지에 도달할 때까지 기다리는 중 |
LogicalRewriteMappingWrite | 논리적 재작성 중에 매핑 데이터 쓰기를 기다리는 중 |
LogicalRewriteSync | 논리적 재작성 매핑이 스토리지에 도달할 때까지 기다리는 중 |
LogicalRewriteTruncate | 논리적 재작성중에 데이터가 truncated 될 때까지 기다리는 중 |
LogicalRewriteWrite | 논리적 재작성 매핑 쓰기를 기다리는 중 |
RelationMapRead | 릴레이션 맵 파일의 읽기를 기다리는 중 |
RelationMapReplace | 릴레이션 맵 파일의 지속적인 교체를 기다리는 중 |
RelationMapWrite | 릴레이션 맵 파일에 쓰기를 기다리는 중 |
ReorderBufferRead | 재정렬(reorder) 버퍼 관리 중 읽기를 기다리는 중 |
ReorderBufferWrite | 재정렬(reorder) 버퍼 관리 중 쓰기를 기다리는 중 |
ReorderLogicalMappingRead | 재정렬(reorder) 버퍼 관리 중 논리적 매핑 읽기를 기다리는 중 |
ReplicationSlotRead | 복제 슬롯 제어 파일(replication slot control file)에서 읽기를 기다리는 중 |
ReplicationSlotRestoreSync | 복제 슬롯 제어 파일( replication slot control file )을 메모리에서 복원하는 동안 스토리지에 도달 할 때까지 기다리는 중 |
ReplicationSlotSync | 복제 슬롯 제어 파일( replication slot control file)이 스토리지에 도달할 때까지 기다리는 중 |
ReplicationSlotWrite | 복제 슬롯 제어 파일( replication slot control file)에 대한 쓰기를 기다리는 중 |
SLRUFlushSync | 체크포인트 또는 데이터베이스 종료 중에 SLRU 데이터가 스토리지에 도달할 때까지 기다리는 중 |
SLRURead | SLRU 페이지 읽기를 기다리는 중 |
SLRUSync | 페이지 쓰기 후 SLRU 데이터가 내구성 있는 스토리지에 도달할 때 까지 기다리는 중 |
SLRUWrite | SLRU 페이지 쓰기를 기다리는 중 |
SnapbuildRead | 직렬화된 기록 카탈로그 스냅샷( serialized historical catalog snapshot )읽기를 기다리는 중 |
SnapbuildSync | 직렬화된 기록 카탈로그 스냅샷( serialized historical catalog snapshot)이 스토리지에 도달할 때까지 기다리는 중 |
SnapbuildWrite | 직렬화된 기록 카탈로그 스냅샷( serialized historical catalog snapshot) 쓰기를 기다리는 중 |
TimelineHistoryFileSync | 스트리밍 복제를 통해 수신된 타임라인 기록 파일이 스토리지에 도달할 때까지 기다리는 중 |
TimelineHistoryFileWrite | 스트리밍 복제를 통해 수신된 타임라인 히스토리 파일의 쓰기를 기다리는 중 |
TimelineHistoryRead | 타임라인 기록 파일 읽기를 기다리는 중 |
TimelineHistorySync | 새로 생성된 타임라인 기록 파일이 스토리지에 도달하기를 기다리는 중 |
TimelineHistoryWrite | 새로 생성된 타임라인 히스토리 파일의 쓰기를 기다리는 중 |
TwophaseFileRead | 2단계 상태 파일 읽기를 기다리는 중 |
TwophaseFileSync | 2단계 상태 파일이 스토리지에 도달할 때까지 기다리는 중 |
TwophaseFileWrite | 2단계 상태 파일 쓰기를 기다리는 중 |
VersionFileWrite | 데이터베이스를 생성하는 동안 버전 파일이 기록되기를 기다리는 중 |
WALBootstrapSync | 부트스트래핑 중에 WAL이 스토리지에 도달할 때까지 기다리는 중 |
WALBootstrapWrite | 부트스트래핑 중에 WAL 페이지 쓰기를 기다리는 중 |
WALCopyRead | 기존 WAL 세그먼트를 복사하여 새 WAL 세그먼트를 생성할 때 읽기를 기다리는 중 |
WALCopySync | 스토리지에 도달하기 위해 기존 WAL 세그먼트를 복사하여 생성된 새 WAL 세그먼트를 기다리는 중 |
WALCopyWrite | 기존 WAL 세그먼트를 복사하여 새 WAL 세그먼트를 생성할 때 쓰기를 기다리는 중 |
WALInitSync | 새로 초기화된 WAL 파일이 스토리지에 도달하기를 기다리는 중 |
WALInitWrite | 새 WAL 파일을 초기화하는 동안 쓰기를 기다리는 중 |
WALRead | WAL 파일에서 읽기를 기다리는 중 |
WALSenderTimelineHistoryRead | walsender 타임라인 명령 중 타임라인 기록 파일에서 읽기를 기다리는 중 |
WALSync | WAL 파일이 스토리지에 도달하기를 기다리는 중 |
WALSyncMethodAssign | 새로운 WAL 동기화 방법을 할당하는 동안 데이터가 스토리지에 도달할 때 까지 기다리는 중 |
WALWrite | WAL 파일에 쓰기를 기다리는 중 |
IPC 대기이벤트
IPC 대기이벤트 | 설명 |
AppendReady | Append 계획 노드의 하위 계획 노드가 준비되기를 기다리는 중 |
ArchiveCleanupCommand | archive_cleanup_command가 완료되기를 기다리는 중 |
ArchiveCommand | archive_command가 완료되기를 기다리는 중 |
BackendTermination | 다른 백엔드의 종료를 기다리는 중 |
BackupWaitWalArchive | 백업이 성공적으로 아카이브 되는 데 필요한 WAL 파일을 기다리는 중 |
BgWorkerShutdown | 백그라운드 작업자가 종료되기를 기다리는 중 |
BgWorkerStartup | 백그라운드 작업자가 시작되기를 기다리는 중 |
BtreePage | 병렬 B-트리 스캔을 계속하는 데 필요한 페이지 번호가 사용 가능해질 때까지 기다리는 중 |
BufferIO | 버퍼 I/O가 완료되기를 기다리는 중 |
CheckpointDone | 체크포인트가 완료되기를 기다리는 중 |
CheckpointStart | 체크포인트가 시작되기를 기다리는 중 |
ExecuteGather | Gather 플랜 노드를 실행하는 동안 하위 프로세스의 활동을 기다리는 중 |
HashBatchAllocate | 선출된 병렬 해시 참가자가 해시 테이블이 할당되기를 기다리는 중 |
HashBatchElect | 해시 테이블을 할당하기 위해 병렬 해시 참가자를 선출하기를 기다리는 중 |
HashBatchLoad | 다른 병렬 해시 참가자가 해시 테이블 로드를 완료할 때 까지 디가리는 중 |
HashBuildAllocate | 선출된 병렬 해시 참가자가 초기 해시 테이블을 할당하기를 기다리는 중 |
HashBuildElect | 초기 해시 테이블을 할당하기 위해 병렬 해시 참가자를 선출하기를 기다리고 있음. |
HashBuildHashInner | 다른 병렬 해시 참가자가 이너 릴레이션 해싱을 완료할 때까지 기다리는 중 |
HashBuildHashOuter | 다른 병렬 해시 참가자가 아우터 릴레이션 파티셔닝을 완료할 때까지 기다리는 중 |
HashGrowBatchesDecide | 향후 배치 성장을 결정하기 위해 병렬 해시 참가자를 선출하기를 기다리고 있음. |
HashGrowBatchesElect | 더 많은 배치를 할당하기 위해 병렬 해시 참가자를 선출하기를 기다리고 있음 |
HashGrowBatchesFinish | 선출된 병렬 해시 참가자가 향후 배치 처리 성장을 결정하기를 기다리고 있음 |
HashGrowBatchesReallocate | 선출된 병렬 해시 참가자가 더 많은 배치를 할당하기를 기다리는 중 |
HashGrowBatchesRepartition | 다른 병렬 해시 참가자가 다시 분할을 완료할 때까지 기다리는 중 |
HashGrowBucketsElect | 더 많은 버킷을 할당하기 위해 병렬 해시 참가자를 선출하기를 기다리고 있음 |
HashGrowBucketsReallocate | 선출된 병렬 해시 참가자가 더 많은 버킷 할당을 완료하기를 기다리고 있음 |
HashGrowBucketsReinsert | 다른 병렬 해시 참가자가 새 버킷에 튜플 삽입을 완료할 때까지 기다리는 중 |
LogicalApplySendData | 논리적 복제 리더 적용 프로세스가 데이터를 병렬 적용 프로세스로 보내기를 기다리는 중 |
LogicalParallelApplyStateChange | 논리적 복제 병렬 적용 프로세스의 상태 변경을 기다리는 중 |
LogicalSyncData | 논리적 복제 원격 서버가 초기 테이블 동기화를 위해 데이터를 보내기를 기다리는 중 |
LogicalSyncStateChange | 논리적 복제 원격 서버의 상태가 변경되기를 기다리는 중 |
MessageQueueInternal | 공유 메시지 대기열에 다른 프로세스가 연결되기를 기다리는 중 |
MessageQueuePutMessage | 공유 메시지 큐에서 프로토콜 메시지 쓰기를 기다리는 중 |
MessageQueueReceive | 공유 메시지 큐에서 바이트 수신을 기다리는 중 |
MessageQueueSend | 공유 메시지 큐로 바이트 전송을 기다리는 중 |
ParallelBitmapScan | 병렬 비트맵 스캔이 초기화되기를 기다리는 중 |
ParallelCreateIndexScan | 병렬 CREATE INDEX 작업자가 힙 스캔을 완료할 때 까지 기다리는 중 |
ParallelFinish | 병렬 작업자가 컴퓨팅을 마칠 때 까지 기다리는 중 |
ProcArrayGroupUpdate | 병렬 작업이 끝날 때 그룹 리더가 트랜잭션 ID를 지우기를 기다리는 중 |
ProcSignalBarrier | 모든 백엔드에서 장벽(barrier) 이벤트가 처리되기를 기다리는 중 |
Promote | promote 준비를 기다리고 있음 |
RecoveryConflictSnapshot | 베큠 클린업을 위한 복구 충돌 해결을 기다리는 중 |
RecoveryConflictTablespace | 테이블스페이스 삭제에 대한 복구 충돌 해결을 기다리는 중 |
RecoveryEndCommand | recovery_end_command가 완료되기를 기다리는 중 |
RecoveryPause | 복구가 재개되기를 기다리는 중 |
ReplicationOriginDrop | 복제 원본이 비활성화되어 삭제될 수 있기를 기다리는 중 |
ReplicationSlotDrop | 복제 슬롯이 삭제될 수 잇도록 비활성화될 때까지 기다리는 중 |
RestoreCommand | restore_command가 완료되기를 기다리는 중 |
SafeSnapshot | READ ONLY DEFERABLE 트랜잭션에 대한 유효한 스냅샷을 얻기 위해 대기중 |
SyncRep | 동기 복제(synchronous replication) 중에 원격 서버의 확인을 기다리는 중 |
WalReceiverExit | WAL receiver가 종료되기를 기다리는 중 |
WalReceiverWaitStart | 스트리밍 복제를 위한 초기 데이터를 보내기 위해 시작 프로세스를 기다리는 중 |
XactGroupUpdate | 병렬 작업이 끝날 때 그룹 리더가 트랜잭션 상태를 업데이트 하기를 기다리는 중 |
Lock 대기이벤트
Lock 대기이벤트 | 설명 |
advisory | advisory 락 획득을 기다리는 중 |
applytransaction | 논리적 복제 이용자가 적용 중인 원격(remote) 트랜잭션에 대한 잠금 획득을 기다리는 중 |
extend | 릴레이션 extension을 기다리고 있음. |
frozenid | pg_database.datfrozenxid 또는 pg_database.datminxid 업데이트를 기다리는 중 |
object | non-relation 데이터베이스 개체에 대한 잠금 획득을 기다리는 중 |
page | 릴레이션 페이지에서 잠금을 획득하기를 기다리는 중 |
relation | 릴레이션에 대한 잠금을 획득하기를 기다리고 중 |
spectoken | 추측성 (speculative) 삽입 락을 획득하기를 기다리는 중 |
trasactionid | 트랜잭션이 완료되기를 기다리고 있음 |
tuple | 튜플에 대한 락을 획득하기를 기다리고 있음 |
userlock | 사용자 락 획득을 기다리는 중 |
virtualxid | 가상 트랜잭션 ID 락 획득을 기다리는 중 |
LWLock 대기이벤트
LWLock 대기이벤트 | 설명 |
AddinShmemInit | 공유 메모리에서 확장의 공간 할당을 관리하기 위해 대기 중 |
AutoFile | postgresql.auto.conf 파일 업데이트를 기다리는 중 |
Autovacuum | autovacuum 작업자의 현재 상태를 읽거나 업데이트하기를 기다리는 중 |
AutovacuumSchedule | autovacuum을 위해 선택한 테이블에 여전히 vacuum이 필요한지 확인하기 위해 기다리는 중 |
BackgroundWorker | 백그라운드 작업자 상태를 읽거나 업데이트 하기를 기다리는 중 |
BtreeVacuum | b-트리 인덱스에 대한 베큠 관련 정보를 읽거나 업데이트하기를 기다리는 중 |
BufferContent | 메모리의 데이터 페이지에 액세스하기를 기다리는 중 |
BufferMapping | 데이터 블록을 버퍼 풀의 버퍼와 연결하기를 기다리는 중 |
CheckpointerComm | fsync 요청 관리를 기다리는 중 |
CommitTs | 트랜잭션 커밋 타임스탬프에 설정된 마지막 값을 읽거나 업데이트 하기를 기다리는 중 |
CommitTsBuffer | 커밋 타임스탬프 SLRU 버퍼에서 I/O를 기다리는 중 |
CommitTsSLRU | 커밋 타임스탬프 SLRU 캐시에 액세스 하기를 기다리는 중 |
ControlFile | pg_control 파일을 읽거나 업데이트 하거나 새 WAL 파일을 생성하기를 기다리는 중 |
DynamicSharedMemoryControl | 동적 공유 메모리 할당 정보를 읽거나 업데이트 하기를 기다리는 중 |
LockFastPath | 프로세스의 빠른 경로 락 정보를 읽거나 업데이트 하기를 기다리는 중 |
LockManager | "heavyweight" 락 장치에 대한 정보를 읽거나 업데이트 하기를 기다리는 중 |
LogicalRepLauncherDSA | 논리적 복제 실행 프로그램의 동적 공유 메모리 할당자에 대한 액세스를 기다리는 중 |
LogicalRepLauncherHash | 논리적 복제 실행 프로그램의 공유 해시 테이블에 대한 액세스를 기다리는 중 |
LogicalRepWorker | 논리적 복제 작업자의 상태를 읽거나 업데이트 하기를 기다리는 중 |
MultiXactGen | 공유 multixact 상태를 읽거나 업데이트 하기를 기다리는 중 |
MultiXactMemberBuffer | multixact 멤버 SLRU 버퍼에서 I/O를 기다리는 중 |
MultiXactMemberSLRU | multixact 멤버 SLRU 캐시에 액세스 하기를 기다리는 중 |
MultiXactOffsetBuffer | multixact 오프셋 SLRU 버퍼에서 I/O를 기다리는 중 |
MultiXactOffsetSLRU | multixact 오프셋 SLRU 캐시에서 액세스하기를 기다리는 중 |
MultiXactTruncation | mulitxact 정보를 읽거나 자르기를 기다리는 중 |
NotifyBuffer | NOTIFY 메시지 SLRU 버퍼에서 I/O를 기다리는 중 |
NotifyQueue | NOTIFY 메시지를 읽거나 업데이트하기를 기다리는 중 |
NotifyQueueTail | NOTIFY 메시지 저장 한도 업데이틑 기다리는 중 |
NotifySLRU | NOTIFY 메시지 SLRU 캐시에 액세스 하는 중 |
OidGen | 새 OID 할당을 기다리는 중 |
OldSnapshotTimeMap | 이전 스냅샷 제어 정보를 읽거나 업데이트 하기를 기다리는 중 |
ParallelAppend | 병렬 추가 계획 실행 중에 작업자 동기화를 기다리는 중 |
ParallelHashJoin | 병렬 해시 조인 계획 실행 중에 작업자 동기화를 기다리는 중 |
ParallelQueryDSA | 병렬 쿼리 동적 공유 메모리 할당을 기다리는 중 |
PerSessionDSA | 병렬 쿼리 동적 공유 메모리 할당을 기다리는 중 |
PerSessionRecordType | 복합 유형에 대한 병렬 쿼리 정보에 액세스하기를 기다리는 중 |
PerSessionRecordTypmod | 복합 유형에대한 병렬 쿼리 정보에 액세스 하기를 기다리는 중 |
PerXactPredicateList | 병렬 쿼리 중에 현재 직렬화 가능 트랜잭션이 보유한 predicate 락 목록에 액세스하기를 기다리는 중 |
PgStatsData | 공유 메모리 통계 데이터 액세스를 기다리는 중 |
PgStatsDSA | 통계 동적 공유 메모리 할당자 액세스를 기다리는 중 |
PgStatsHash | 통계 공유 메모리 해시 테이블 액세스를 기다리는 중 |
PredicateLockManager | 직렬화 가능 트랜잭션에서 사용되는 predicate 락 정보를 액세스하기를 기다리는 중 |
ProcArray | 공유된 프로세스 별 데이터 구조에 액세스하기 위해 대기 중 (일반적으로 스냅샷을 얻거나 세션의 트랜잭션ID를 보고하기 위함) |
RelationMapping | pg_filenode.map 파일 읽기 또는 업데이트를 기다리는 중 (특정 시스템 카탈로그의 파일 노드 할당을 추적하는 데 사용됨) |
RelCacheInit | pg_internal.init 릴레이션 캐시 초기화 파일을 읽거나 업데이트 중 |
ReplicationOrigin | 복제 원본 생성, 삭제 또는 사용을 기다리는 중 |
ReplicationOriginState | 하나의 복제 원본의 진행 상황을 읽거나 업데이트하기를 기다리는 중 |
ReplicationSlotAllocation | 복제 슬롯 할당 또는 해제를 기다리는 중 |
ReplicationSlotControl | 복제 슬롯 상태를 읽거나 업데이트 하기를 기다리는 중 |
ReplicationSlotIO | 복제 슬롯에서 I/O를 기다리는 중 |
SerialBuffer | 직렬화 가능 트랜잭션 충돌 SLRU 버퍼에서 I/O를 기다리는 중 |
SerializableFinishedList | 완료된 직렬화 가능 트랜잭션 목록에 액세스하기를 기다리는 중 |
SerializablePredicateList | 직렬화 가능 트랜잭션이 보유한 predicate 락 목록에 액세스하기를 기다리는 중 |
SerializableXactHash | 직렬화 가능 트랜잭션에 대한 정보를 읽거나 업데이트 하기를 기다리는 중 |
SerialSLRU | 직렬화 가능 트랜잭션 충돌 SLRU 캐시에 액세스 하는 중 |
SharedTidBitmap | 병렬 비트맵 인덱스 스캔 중에 공유 TID 비트맵에 액세스 하기를 기다리는 중 |
SharedTupleStore | 병렬 쿼리 중에 공유 튜플 저장소에 액세스하기를 기다리는 중 |
ShmemIndex | 공유 메모리에서 공간을 찾거나 할당하기를 기다리는 중 |
SInvalRead | 공유 카탈로그 무효화 큐에서 메시지 검색을 기다리는 중 |
SInvalWrite | 공유 카탈로그 무효화 큐에서 메시지 추가를 기다리는 중 |
SubtransBuffer | 하위 트랜잭션 SLRU 버퍼에서 I/O를 기다리는 중 |
SubtransSLRU | 하위 트랜잭션 SLRU 캐시에 액세스 하기를 기다리는 중 |
SyncRep | 동기 복제 상태에 대한 정보를 읽거나 업데이트하기를 기다리는 중 |
SyncScan | 동기화 테이블 스캔 시작 위치를 선택을 기다리는 중 |
TablespaceCreate | 테이블스페이스 생성 또는 삭제를 기다리는 중 |
TwoPhaseState | 준비된 트랜잭션의 상태를 읽거나 업데이트 하기를 기다리는 중 |
WALBufMapping | WAL 버퍼의 페이지 교체를 기다리는 중 |
WALInsert | WAL 데이터를 메모리 버퍼에 삽입하기를 기다리는 중 |
WALWrite | WAL 버퍼가 디스크에 기록되기를 기다리는 중 |
WrapLimitsVacuum | 트랜잭션ID 및 multixact 소비에 대한 한도 업데이트를 기다리는 중 |
XactBuffer | 트랜잭션 상태 SLRU 버퍼에서 I/O를 기다리는 중 |
XactSLRU | 트랜잭션 상태 SLRU 캐시에 액세스 하는 중 |
XactTruncation | pg_xact_status 사용 가능한 가장 오래된 트랜잭션ID를 실행하거나 업데이트 하기를 기다리는 중 |
XidGen | 새 트랜잭션 ID 할당을 기다리는 중 |
Timeout 대기이벤트
Timeout 대기이벤트 | 설명 |
BaseBackupThrottle | Throttling 활동을 할 때 기본 백업 중에 대기 중 |
CheckpointWriteDelay | 체크포인트를 수행하는 동안 쓰기 사이에 대기 중 |
PgSleep | pg_sleep 호출 또는 sibling 함수에 의해 대기 중 |
RecoveryApplyDelay | 지연 설정으로 인해 복구 중에 WAL 적용을 기다리는 중 |
RecoveryRetrieveRetryInterval | 어떤소스에서도 WAL 데이터를 사용할 수 없는 경우 복구 중에 대기 (pg_wal, archive 또는 stream) |
RegisterSyncRequest | 요청 큐가 가득차서 체크포인터로 동기화 요청을 보내는 동안 기다리는 중 |
SpinDelay | 경합 스핀락을 획득하는 동안 기다리는 중 |
VacuumDelay | 비용 기반 베큠 지연 지점에서 대기 중 |
VacuumTruncate | 베큠된 테이블 끝에 있는 빈 페이지를 잘라내기 위해 배타적(exclusive) 락을 획득하기를 기다리는 중 |
함께 보면 좋을 내용
'데이터베이스 > PostgreSQL' 카테고리의 다른 글
PostgreSQL 서버 세션 모니터링 및 락 확인, 세션 킬 기능 (1) | 2023.11.20 |
---|
댓글