PostgreSQL's토토 캔 수집가는 지원하는 서브 시스템입니다
PostgreSQL도 지원합니다
토토 캔 수집이 쿼리에 약간의 오버 헤드가 추가되므로postgresql.conf. (보다범퍼카 토토 : 문서 : 9.3 : 서버 구성에 대한 자세한 내용
매개 변수track_activities
매개 변수track_counts테이블 및 인덱스에 대한 토토 캔가 수집되는지 여부를 제어합니다
매개 변수track_functions사용자 정의 함수의 사용 추적 활성화.
매개 변수track_io_timing블록 읽기 및 쓰기 시간의 모니터링 가능.
일반적으로 이러한 매개 변수는에 설정됩니다.postgresql.conf모든 서버에 적용되도록합니다set명령. (에게set.)
토토 캔 수집가는 수집 된 정보를 전달합니다PostgreSQLstats_temp_directory매개 변수,PG_STAT_TMP기본적으로. 을 위한stats_temp_directoryRAM 기반 파일 시스템을 가리켜 물리적 I/O를 줄일 수 있습니다.PG_STAT서버 전체에 토토 캔를 유지할 수 있도록 하위 디렉토리
몇 가지 사전 정의 된 뷰, 나열된테이블, 토토 캔 결과를 보여줄 수 있습니다섹션.
통계를 사용하여 현재 활동을 모니터링 할 때pgstat_stat_interval밀리 초 (서버를 구축하는 동안 변경되지 않는 한 500ms). 그래서track_activities항상 최신입니다.
또 다른 중요한 점은 서버 프로세스가 요청 될 때PG_STAT_CLEAR_SNAPSHOT
(),
트랜잭션은 자체 토토 캔를 볼 수 있습니다 (아직pg_stat_xact_all_tables, pg_stat_xact_sys_tables, PG_STAT_XACT_USER_TABLE및PG_STAT_XACT_USER_FUNTIONS. 이 숫자는 그렇지 않습니다
표 27-1. 표준 토토 캔보기
이름보기 | 설명 |
---|---|
pg_stat_activity | 서버 프로세스 당 하나의 행,pg_stat_activity자세한 내용. |
PG_STAT_BGWRITER | 배경 작가에 대한 토토 캔를 보여주는 한 행 만PG_STAT_BGWRITER자세한 내용. |
PG_STAT_DATABASE | 데이터베이스 전체 토토 캔를 표시하는 데이터베이스 당 1 행. 보다PG_STAT_DATABASE자세한 내용. |
pg_stat_all_tables | 현재 데이터베이스의 각 테이블마다 1 개의 행, 표시pg_stat_all_tables자세한 내용. |
PG_STAT_SYS_TABLE | 동일pg_stat_all_tables |
pg_stat_user_tables | 동일pg_stat_all_tables |
pg_stat_xact_all_tables | 유사pg_stat_all_tables, 그러나not아직 포함pg_stat_all_tables및 관련 견해). |
pg_stat_xact_sys_tables | 동일pg_stat_xact_all_tables, |
PG_STAT_XACT_USER_TABLE | 동일pg_stat_xact_all_tables, |
PG_STAT_ALL_INDEXES | 현재 데이터베이스의 각 인덱스마다 1 개의 행, 표시PG_STAT_ALL_INDEXES자세한 내용. |
PG_STAT_SYS_INDEXES | 동일PG_STAT_ALL_INDEXES |
PG_STAT_USER_INDEXES | 동일PG_STAT_ALL_INDEXES |
pg_statio_all_tables | 현재 데이터베이스의 각 테이블마다 1 개의 행, 표시pg_statio_all_tables자세한 내용. |
PG_STATIO_SYS_TABLE | 동일pg_statio_all_tables, |
pg_statio_user_tables | 동일pg_statio_all_tables, |
PG_STATIO_ALL_INDEXES | 현재 데이터베이스의 각 인덱스마다 1 개의 행, 표시PG_STATIO_ALL_INDEXES자세한 내용. |
PG_STATIO_SYS_INDEXES | 동일PG_STATIO_ALL_INDEXES, |
PG_STATIO_USER_INDEXES | 동일PG_STATIO_ALL_INDEXES, |
PG_STATIO_ALL_SEATENCES | 현재 데이터베이스의 각 시퀀스마다 1 개의 행, 표시PG_STATIO_ALL_SEATENCES자세한 내용. |
PG_STATIO_SYS_SEVESSENCES | 동일PG_STATIO_ALL_SEATENCES, |
PG_STATIO_USER_SEVERENCES | 동일PG_STATIO_ALL_SEATENCES, |
PG_STAT_USER_FUNTIONS | 각 추적 함수에 대해 하나의 행으로 토토 캔를 표시합니다PG_STAT_USER_FUNTIONS자세한 내용. |
PG_STAT_XACT_USER_FUNTIONS | 유사PG_STAT_USER_FUNTIONS,not아직 포함PG_STAT_USER_FUNTIONS). |
pg_stat_replication | WAL Sender 프로세스 당 1 행, 토토 캔를 보여줍니다pg_stat_replication자세한 내용. |
PG_STAT_DATABASE_CONFLICTS | 데이터베이스 당 하나의 행으로 데이터베이스 전체 토토 캔를 표시합니다PG_STAT_DATABASE_CONFLICTS자세한 내용. |
인덱스당 토토 캔는 특히 결정하는 데 유용합니다
thePG_STATIO_보기는 주로입니다PostgreSQL디스크 I/O 핸들 데이터, 그렇지 않은 데이터PostgreSQL버퍼 캐시PostgreSQLI/O 동작은 사용하는 것이 좋습니다PostgreSQL토토 캔 수집가
표 27-2.pg_stat_activity보기
열 | 타입 | 설명 |
---|---|---|
datid | OID | 데이터베이스의 OID이 백엔드는에 연결되어 있습니다. |
datname | 이름 | 데이터베이스 이름이 백엔드는에 연결되어 있습니다. |
PID | Integer | 이 백엔드의 프로세스 ID |
useysid | OID | 이 백엔드에 로그인 한 사용자의 OID |
useName | 이름 | 이 백엔드에 로그인 한 사용자 이름 |
Application_Name | 텍스트 | 이 백엔드에 연결된 응용 프로그램 이름 |
client_addr | inet | 이 백엔드에 연결된 클라이언트의 IP 주소. 이 경우 |
client_hostname | 텍스트 | Reverse DNS에 의해보고 된대로 연결된 클라이언트의 호스트 이름client_addr. 이 필드는 할 것입니다log_hostnameis |
client_port | Integer | 클라이언트가 통신에 사용하는 TCP 포트 번호-1UNIX 소켓 인 경우 |
backend_start | 시간대가있는 타임 스탬프 | 이 프로세스가 시작된 시간, 즉 클라이언트가 |
XACT_START | 시간대가있는 타임 스탬프 | 이 프로세스 시간 '현재 트랜잭션이 시작되었을 때,query_start열. |
query_start | 시간대가있는 타임 스탬프 | 현재 활성 쿼리가 시작된 시간 또는 ifStateActive, 마지막 쿼리가 시작되었을 때 |
State_change | 시간대가있는 타임 스탬프 | 시간 시간State마지막이었습니다 |
대기 | 부울 | 이 백엔드가 현재 잠금을 기다리는 경우. |
State | 텍스트 | 이 백엔드의 현재 전체 상태. 가능한 가치는 다음과 같습니다.
|
쿼리 | 텍스트 | 이 백엔드의 최신 쿼리의 텍스트. 만약에StateisActive이것 |
thepg_stat_activity보기가 있습니다
참고 :the대기andState열은 독립적입니다. 경우 aActiveState, OR대기. 주가 인 경우Activeand대기는 사실입니다. 쿼리가 있음을 의미합니다
표 27-3.PG_STAT_BGWRITER보기
열 | 타입 | 설명 |
---|---|---|
CheckPoints_TIMED | bigint | 수행 된 예정된 체크 포인트 수 |
CheckPoints_Req | bigint | 수행 된 요청 된 검문소 수 |
Checkpoint_write_time | 이중 정밀 | |
checkpoint_sync_time | 이중 정밀 | |
buffers_checkpoint | bigint | 체크 포인트 중에 작성된 버퍼 수 |
buffers_clean | bigint | 배경 작성자가 작성한 버퍼 수 |
MaxWritten_clean | bigint | 배경 작성자가 청소 스캔을 중지 한 횟수 |
buffers_backend | bigint | 백엔드에 의해 직접 작성된 버퍼 수 |
buffers_backend_fsync | bigint | 백엔드가 자체적으로 실행 해야하는 횟수fsync 전화 (일반적으로 배경 작가 |
buffers_alloc | bigint | 할당 된 버퍼 수 |
stats_reset | 시간대가있는 타임 스탬프 | 이러한 토토 캔가 마지막으로 재설정 된 시간 |
thePG_STAT_BGWRITERView Will
표 27-4.PG_STAT_DATABASE보기
열 | 타입 | 설명 |
---|---|---|
datid | OID | 데이터베이스의 OID |
datname | 이름 | 이 데이터베이스 이름 |
Numbackends | Integer | 현재이 데이터베이스에 연결된 백엔드 수. 이것 |
xact_commit | bigint | 이 데이터베이스의 트랜잭션 수 |
xact_rollback | bigint | 롤링 된이 데이터베이스의 트랜잭션 수 |
blks_read | bigint | 이 데이터베이스에서 읽는 디스크 블록 수 |
blks_hit | bigint | 디스크 블록이 이미 버퍼에서 발견되었습니다. |
tup_returned | bigint | 이 데이터베이스의 쿼리에 의해 반환 된 행 수 |
tup_fetched | bigint | 이 데이터베이스의 쿼리에 의해 가져온 행 수 |
tup_inserted | bigint | 이 데이터베이스의 쿼리에 의해 삽입 된 행 수 |
tup_updated | bigint | 이 데이터베이스의 쿼리로 업데이트 된 행 수 |
tup_deleted | bigint | 이 데이터베이스의 쿼리로 삭제 된 행 수 |
갈등 | bigint | 복구 충돌로 인해 취소 된 쿼리 수PG_STAT_DATABASE_CONFLICTS자세한 내용.) |
temp_files | bigint | 이 데이터베이스의 쿼리로 생성 된 임시 파일 수.log_temp_files설정. |
temp_bytes | bigint | 쿼리로 임시 파일에 작성된 총 데이터 금액log_temp_files설정. |
교착 상태 | bigint | 이 데이터베이스에서 감지 된 교착 상태 수 |
blk_read_time | 이중 정밀 | 이것에 의해 백엔드에 의해 데이터 파일 블록을 읽는 시간 |
blk_write_time | 이중 정밀 | 이것에 의해 백엔드에 의해 데이터 파일 블록을 작성하는 데 소요 된 시간 |
stats_reset | 시간대가있는 타임 스탬프 | 이러한 토토 캔가 마지막으로 재설정 된 시간 |
thePG_STAT_DATABASE보기
표 27-5.pg_stat_all_tables보기
열 | 타입 | 설명 |
---|---|---|
Relid | OID | 테이블의 OID |
Schemaname | 이름 | 이 테이블이있는 스키마의 이름 |
Relname | 이름 | 이 테이블의 이름 |
SEQ_SCAN | bigint | 이 표에서 시작된 순차적 스캔 수 |
seq_tup_read | bigint | 순차적 스캔으로 가져온 라이브 행 수 |
idx_scan | bigint | 이 표에서 시작된 인덱스 스캔 수 |
idx_tup_fetch | bigint | 인덱스 스캔에 의해 가져온 라이브 행 수 |
n_tup_ins | bigint | 삽입 된 행 수 |
n_tup_upd | bigint | 업데이트 된 행 수 |
N_TUP_DEL | bigint | 삭제 된 행 수 |
n_tup_hot_upd | bigint | 행 수 핫 업데이트 (즉, 별도의 인덱스 업데이트 없음 |
n_live_tup | bigint | 예상 라이브 행 수 |
n_dead_tup | bigint | 죽은 줄의 추정 수 |
last_vacuum | 시간대가있는 타임 스탬프 | 이 테이블이 수동으로 진공 청소 된 마지막 시간 (진공 Full) |
last_autovacuum | 시간대가있는 타임 스탬프 | 이 테이블이 Autovacuum에 의해 진공 청소기를 청소 한 마지막 시간 |
last_analyze | 시간대가있는 타임 스탬프 | 이 테이블이 수동으로 분석 된 마지막 시간 |
last_autoanalyze | 시간대가있는 타임 스탬프 | 이 테이블이 Autovacuum에 의해 분석 된 마지막 시간 |
Vacuum_Count | bigint | 이 테이블이 수동으로 진공 청소기를 낸 횟수 (진공 Full) |
autovacuum_count | bigint | 이 테이블이 Autovacuum에 의해 진공 청소기를 청소했습니다. |
Analyze_Count | bigint | 이 테이블이 수동으로 분석 된 횟수 |
autoanalyze_count | bigint | 이 테이블이 Autovacuum에 의해 분석되었습니다. |
thepg_stat_all_tables보기pg_stat_user_tablesandPG_STAT_SYS_TABLE보기가 포함되어 있습니다
표 27-6.PG_STAT_ALL_INDEXES보기
열 | 타입 | 설명 |
---|---|---|
Relid | OID | 이 색인에 대한 테이블의 OID |
IndexRelid | OID | 이 색인의 OID |
Schemaname | 이름 | 스키마 이름이 색인이 |
Relname | 이름 | 이 색인의 테이블 이름 |
indexRelName | 이름 | 이 색인의 이름 |
idx_scan | bigint | 이 인덱스에서 시작된 인덱스 스캔 수 |
idx_tup_read | bigint | 이 인덱스에서 스캔에 의해 반환 된 인덱스 항목 수 |
idx_tup_fetch | bigint | 간단한 인덱스 스캔으로 가져온 라이브 테이블 행 수 |
thePG_STAT_ALL_INDEXES보기PG_STAT_USER_INDEXESandPG_STAT_SYS_INDEXES보기에는 동일합니다
인덱스는 간단한 인덱스 스캔 또는를 통해 사용할 수 있습니다."비트 맵"인덱스 스캔. 비트 맵 스캔에서PG_STAT_ALL_INDEXES.idx_tup_read사용하는 인덱스의 카운트 (s),pg_stat_all_tables.idx_tup_fetch테이블을 계산하지만 그렇습니다PG_STAT_ALL_INDEXES.idx_tup_fetch.
참고 :theidx_tup_readandidx_tup_fetch카운트는 다를 수 있습니다idx_tup_read검색 된 인덱스 항목 카운트idx_tup_fetch카운트
표 27-7.pg_statio_all_tables보기
열 | 타입 | 설명 |
---|---|---|
Relid | OID | 테이블의 OID |
Schemaname | 이름 | 이 테이블이있는 스키마의 이름 |
Relname | 이름 | 이 테이블의 이름 |
heap_blks_read | bigint | 이 테이블에서 읽은 디스크 블록 수 |
heap_blks_hit | bigint | 이 테이블의 버퍼 히트 수 |
idx_blks_read | bigint | 이 표의 모든 인덱스에서 읽은 디스크 블록 수 |
idx_blks_hit | bigint | 이 테이블의 모든 인덱스에서 버퍼 히트 횟수 |
TOAST_BLKS_READ | bigint | 이 테이블의 토스트 테이블에서 읽은 디스크 블록 수 (if |
TOAST_BLKS_HIT | bigint | 이 테이블의 토스트 테이블에서 버퍼 히트 수 (있는 경우) |
TIDX_BLKS_READ | bigint | 이 테이블의 토스트 테이블 인덱스에서 읽은 디스크 블록 수 |
TIDX_BLKS_HIT | bigint | 이 테이블의 토스트 테이블 인덱스의 버퍼 히트 수 (if |
thepg_statio_all_tables보기pg_statio_user_tablesandPG_STATIO_SYS_TABLE보기가 포함되어 있습니다
표 27-8.PG_STATIO_ALL_INDEXES보기
열 | 타입 | 설명 |
---|---|---|
Relid | OID | 이 색인에 대한 테이블의 OID |
IndexRelid | OID | 이 색인의 OID |
Schemaname | 이름 | 스키마 이름이 색인이 |
Relname | 이름 | 이 색인의 테이블 이름 |
indexRelName | 이름 | 이 색인의 이름 |
idx_blks_read | bigint | 이 인덱스에서 읽은 디스크 블록 수 |
idx_blks_hit | bigint | 이 인덱스의 버퍼 히트 수 |
thePG_STATIO_ALL_INDEXESView WillPG_STATIO_USER_INDEXESandPG_STATIO_SYS_INDEXES보기에는 동일합니다
표 27-9.PG_STATIO_ALL_SEATENCES보기
열 | 타입 | 설명 |
---|---|---|
Relid | OID | 시퀀스의 OID |
Schemaname | 이름 | 스키마 이름이 시퀀스가 |
Relname | 이름 | 이 시퀀스의 이름 |
blks_read | bigint | 이 시퀀스에서 읽은 디스크 블록 수 |
blks_hit | bigint | 이 시퀀스의 버퍼 히트 수 |
thePG_STATIO_ALL_SEATENCES보기
표 27-10.PG_STAT_USER_FUNTIONS보기
열 | 타입 | 설명 |
---|---|---|
funcid | OID | 함수의 OID |
Schemaname | 이름 | 스키마 이름이 함수는 |
funcName | 이름 | 이 함수의 이름 |
전화 | bigint | 이 기능이 호출 된 횟수 |
Total_Time | 이중 정밀 | 이 기능 및 기타 모든 기능에 소요되는 총 시간 |
self_time | 이중 정밀 | 이 기능 자체에서 소비 된 총 시간은 다른 것을 포함하지 않습니다. |
thePG_STAT_USER_FUNTIONS보기track_functions매개 변수 제어 정확히 어떤 함수가 추적되는지
표 27-11.pg_stat_replication보기
열 | 타입 | 설명 |
---|---|---|
PID | Integer | WAL 발신자 프로세스의 프로세스 ID |
useysid | OID | 이 WAL 발신자 프로세스에 로그인 한 사용자의 OID |
useName | 이름 | 이 WAL 발신자 프로세스에 로그인 한 사용자 이름 |
Application_Name | 텍스트 | 이 WAL에 연결된 응용 프로그램 이름 |
client_addr | inet | 이 WAL 발신자에 연결된 클라이언트의 IP 주소. 이 경우 |
client_hostname | 텍스트 | Reverse DNS에 의해보고 된대로 연결된 클라이언트의 호스트 이름client_addr. 이 필드는 할 것입니다log_hostnameis |
client_port | Integer | 클라이언트가 통신에 사용하는 TCP 포트 번호-1UNIX 소켓 인 경우 |
backend_start | 시간대가있는 타임 스탬프 | 이 프로세스가 시작된 시간, 즉 클라이언트시기 |
State | 텍스트 | 현재 Wal Sender State |
sent_location | 텍스트 | 이 연결에서 전송 된 마지막 트랜잭션 로그 위치 |
쓰기 _location | 텍스트 | 이 대기로 디스크에 기록 된 마지막 트랜잭션 로그 위치 |
flush_location | 텍스트 | 이 대기로 디스크로 플러시 된 마지막 트랜잭션 로그 위치 |
Replay_Location | 텍스트 | 마지막 트랜잭션 로그 위치가 데이터베이스 켜기로 재생되었습니다 |
sync_priority | Integer | 이 대기 서버의 우선 순위는 |
sync_state | 텍스트 | 이 대기 서버의 동기 상태 |
thepg_stat_replication보기
표 27-12.PG_STAT_DATABASE_CONFLICTS보기
열 | 타입 | 설명 |
---|---|---|
datid | OID | 데이터베이스의 OID |
datname | 이름 | 이 데이터베이스 이름 |
cl_tablespace | bigint | 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다. |
cl_lock | bigint | 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다. |
COLL_SNAPSHOT | bigint | 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다. |
cl_bufferpin | bigint | 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다. |
cl_deadlock | bigint | 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다. |
thePG_STAT_DATABASE_CONFLICTS보기
토토 캔를 보는 다른 방법은 글을 쓰면 설정할 수 있습니다.PSQL할 수 있습니다\ d+ pg_stat_activity.) 액세스
토토 캔 수집과 관련된 추가 기능이 나열되어 있습니다테이블.
표 27-13. 추가 토토 캔 기능
기능 | 반환 유형 | 설명 |
---|---|---|
pg_backend_pid () |
Integer | 서버 프로세스의 프로세스 ID는 전류를 처리합니다 |
pg_stat_get_activity (Integer) |
Setof Record | 백엔드에 대한 정보 기록을 반환합니다.NULL지정되어 있습니다. 필드가 돌아 왔습니다pg_stat_activityView. |
PG_STAT_CLEAR_SNAPSHOT () |
void | 현재 통계를 버립니다 |
PG_STAT_RESET () |
void | 현재 데이터베이스의 모든 통계 카운터를 0으로 재설정합니다. |
PG_STAT_RESET_SHARED (텍스트) |
void | 일부 클러스터 전체 토토 캔 카운터를 0으로 재설정하십시오PG_STAT_RESET_SHARD ( 'BGWRITER')전부를 제로 할 것입니다PG_STAT_BGWRITERView. |
pg_stat_reset_single_table_counters (OID) |
void | 현재의 단일 테이블 또는 인덱스에 대한 통계 재설정 |
pg_stat_reset_single_function_counters (OID) |
void | 현재 데이터베이스의 단일 함수에 대한 통계 재설정 |
pg_stat_get_activity
,pg_stat_activity보기, 레코드 세트를 반환합니다테이블. 이러한 액세스 기능은 백엔드 ID 번호를 사용합니다pg_stat_get_backend_idset
각 활성 각각에 대해 하나의 행을 생성하는 편리한 방법을 제공합니다.PIDs 및 모든의 현재 쿼리
PG_STAT_GET_BACKEND_PID (S.BACKENDID)를 PID로 선택하십시오.
표 27-14. 백 커드 당 통계 기능
기능 | 반환 유형 | 설명 |
---|---|---|
pg_stat_get_backend_idset () |
정수 세트 | 현재 활성 백엔드 ID 번호 세트 (1에서 |
pg_stat_get_backend_activity (정수) |
텍스트 | 이 백엔드의 가장 최근 쿼리 텍스트 |
PG_STAT_GET_BACKEND_ACTIVITY_START (Integer) |
시간대가있는 타임 스탬프 | 가장 최근의 쿼리가 시작된 시간 |
pg_stat_get_backend_client_addr (정수) |
inet | 이 백엔드에 연결된 클라이언트의 IP 주소 |
pg_stat_get_backend_client_port (정수) |
Integer | 클라이언트가 커뮤니케이션에 사용하는 TCP 포트 번호 |
pg_stat_get_backend_dbid (정수) |
OID | 데이터베이스의 OID이 백엔드는에 연결되어 있습니다. |
pg_stat_get_backend_pid (정수) |
Integer | 이 백엔드의 프로세스 ID |
PG_STAT_GET_BACKEND_START (Integer) |
시간대가있는 타임 스탬프 | 이 과정이 시작된 시간 |
PG_STAT_GET_BACKEND_USERID (Integer) |
OID | 이 백엔드에 로그인 한 사용자의 OID |
pg_stat_get_backend_waiting (정수) |
부울 | 이 백엔드가 현재 잠금을 기다리는 경우. |
PG_STAT_GET_BACKEND_XACT_START (Integer) |
시간대가있는 타임 스탬프 | 현재 거래가 시작된 시간 |
이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
표준 유닉스 도구 | up | 보기 잠금 |