PostgreSQL Source Code git master
|
#include "postgres.h"
#include "access/xlog.h"
#include "storage/bufmgr.h"
#include "storage/proc.h"
#include "storage/procarray.h"
#include "utils/memutils.h"
#include "utils/pgstat_internal.h"
Go to the source code of this file.
Macros | |
#define | WALSTAT_ACC(fld, var_to_add) (bktype_shstats->fld += var_to_add.fld) |
Functions | |
void | pgstat_count_backend_io_op_time (IOObject io_object, IOContext io_context, IOOp io_op, instr_time io_time) |
void | pgstat_count_backend_io_op (IOObject io_object, IOContext io_context, IOOp io_op, uint32 cnt, uint64 bytes) |
PgStat_Backend * | pgstat_fetch_stat_backend (ProcNumber procNumber) |
PgStat_Backend * | pgstat_fetch_stat_backend_by_pid (int pid, BackendType *bktype) |
static void | pgstat_flush_backend_entry_io (PgStat_EntryRef *entry_ref) |
static bool | pgstat_backend_wal_have_pending (void) |
static void | pgstat_flush_backend_entry_wal (PgStat_EntryRef *entry_ref) |
bool | pgstat_flush_backend (bool nowait, bits32 flags) |
bool | pgstat_backend_have_pending_cb (void) |
bool | pgstat_backend_flush_cb (bool nowait) |
void | pgstat_create_backend (ProcNumber procnum) |
bool | pgstat_tracks_backend_bktype (BackendType bktype) |
void | pgstat_backend_reset_timestamp_cb (PgStatShared_Common *header, TimestampTz ts) |
Variables | |
static PgStat_BackendPending | PendingBackendStats |
static bool | backend_has_iostats = false |
static WalUsage | prevBackendWalUsage |
#define WALSTAT_ACC | ( | fld, | |
var_to_add | |||
) | (bktype_shstats->fld += var_to_add.fld) |
bool pgstat_backend_flush_cb | ( | bool | nowait | ) |
Definition at line 322 of file pgstat_backend.c.
References PGSTAT_BACKEND_FLUSH_ALL, and pgstat_flush_backend().
bool pgstat_backend_have_pending_cb | ( | void | ) |
Definition at line 308 of file pgstat_backend.c.
References backend_has_iostats, MyBackendType, pgstat_backend_wal_have_pending(), and pgstat_tracks_backend_bktype().
void pgstat_backend_reset_timestamp_cb | ( | PgStatShared_Common * | header, |
TimestampTz | ts | ||
) |
Definition at line 409 of file pgstat_backend.c.
|
inlinestatic |
Definition at line 213 of file pgstat_backend.c.
References pgWalUsage, prevBackendWalUsage, and WalUsage::wal_records.
Referenced by pgstat_backend_have_pending_cb(), pgstat_flush_backend(), and pgstat_flush_backend_entry_wal().
void pgstat_count_backend_io_op | ( | IOObject | io_object, |
IOContext | io_context, | ||
IOOp | io_op, | ||
uint32 | cnt, | ||
uint64 | bytes | ||
) |
Definition at line 72 of file pgstat_backend.c.
References Assert(), backend_has_iostats, PgStat_PendingIO::bytes, PgStat_PendingIO::counts, MyBackendType, PgStat_BackendPending::pending_io, PendingBackendStats, pgstat_tracks_backend_bktype(), and pgstat_tracks_io_op().
Referenced by pgstat_count_io_op().
void pgstat_count_backend_io_op_time | ( | IOObject | io_object, |
IOContext | io_context, | ||
IOOp | io_op, | ||
instr_time | io_time | ||
) |
Definition at line 55 of file pgstat_backend.c.
References Assert(), backend_has_iostats, INSTR_TIME_ADD, MyBackendType, PgStat_BackendPending::pending_io, PgStat_PendingIO::pending_times, PendingBackendStats, pgstat_tracks_backend_bktype(), pgstat_tracks_io_op(), track_io_timing, and track_wal_io_timing.
Referenced by pgstat_count_io_op_time().
void pgstat_create_backend | ( | ProcNumber | procnum | ) |
Definition at line 331 of file pgstat_backend.c.
References backend_has_iostats, InvalidOid, MemSet, MyProcNumber, PendingBackendStats, pgstat_get_entry_ref_locked(), PGSTAT_KIND_BACKEND, pgstat_unlock_entry(), pgWalUsage, prevBackendWalUsage, PgStat_EntryRef::shared_stats, and PgStatShared_Backend::stats.
Referenced by pgstat_bestart_final().
PgStat_Backend * pgstat_fetch_stat_backend | ( | ProcNumber | procNumber | ) |
Definition at line 90 of file pgstat_backend.c.
References InvalidOid, pgstat_fetch_entry(), and PGSTAT_KIND_BACKEND.
Referenced by pgstat_fetch_stat_backend_by_pid().
PgStat_Backend * pgstat_fetch_stat_backend_by_pid | ( | int | pid, |
BackendType * | bktype | ||
) |
Definition at line 108 of file pgstat_backend.c.
References AuxiliaryPidGetProc(), B_INVALID, BackendPidGetProc(), GetNumberFromPGProc, pgstat_fetch_stat_backend(), pgstat_get_beentry_by_proc_number(), pgstat_tracks_backend_bktype(), PgBackendStatus::st_backendType, and PgBackendStatus::st_procpid.
Referenced by pg_stat_get_backend_io(), and pg_stat_get_backend_wal().
bool pgstat_flush_backend | ( | bool | nowait, |
bits32 | flags | ||
) |
Definition at line 267 of file pgstat_backend.c.
References backend_has_iostats, InvalidOid, MyBackendType, MyProcNumber, PGSTAT_BACKEND_FLUSH_IO, PGSTAT_BACKEND_FLUSH_WAL, pgstat_backend_wal_have_pending(), pgstat_flush_backend_entry_io(), pgstat_flush_backend_entry_wal(), pgstat_get_entry_ref_locked(), PGSTAT_KIND_BACKEND, pgstat_tracks_backend_bktype(), and pgstat_unlock_entry().
Referenced by pgstat_backend_flush_cb(), pgstat_report_analyze(), pgstat_report_vacuum(), pgstat_report_wal(), WalSndLoop(), and WalSndWaitForWal().
|
static |
Definition at line 163 of file pgstat_backend.c.
References backend_has_iostats, PgStat_BktypeIO::bytes, PgStat_PendingIO::bytes, PgStat_BktypeIO::counts, PgStat_PendingIO::counts, for(), INSTR_TIME_GET_MICROSEC, PgStat_Backend::io_stats, IOCONTEXT_NUM_TYPES, IOOBJECT_NUM_TYPES, IOOP_NUM_TYPES, MemSet, PgStat_BackendPending::pending_io, PgStat_PendingIO::pending_times, PendingBackendStats, PgStat_EntryRef::shared_stats, PgStatShared_Backend::stats, and PgStat_BktypeIO::times.
Referenced by pgstat_flush_backend().
|
static |
Definition at line 223 of file pgstat_backend.c.
References pgstat_backend_wal_have_pending(), pgWalUsage, prevBackendWalUsage, PgStat_EntryRef::shared_stats, PgStatShared_Backend::stats, PgStat_Backend::wal_counters, WALSTAT_ACC, and WalUsageAccumDiff().
Referenced by pgstat_flush_backend().
bool pgstat_tracks_backend_bktype | ( | BackendType | bktype | ) |
Definition at line 374 of file pgstat_backend.c.
References B_ARCHIVER, B_AUTOVAC_LAUNCHER, B_AUTOVAC_WORKER, B_BACKEND, B_BG_WORKER, B_BG_WRITER, B_CHECKPOINTER, B_DEAD_END_BACKEND, B_INVALID, B_IO_WORKER, B_LOGGER, B_SLOTSYNC_WORKER, B_STANDALONE_BACKEND, B_STARTUP, B_WAL_RECEIVER, B_WAL_SENDER, B_WAL_SUMMARIZER, and B_WAL_WRITER.
Referenced by pg_stat_reset_backend_stats(), pgstat_backend_have_pending_cb(), pgstat_bestart_final(), pgstat_count_backend_io_op(), pgstat_count_backend_io_op_time(), pgstat_fetch_stat_backend_by_pid(), and pgstat_flush_backend().
|
static |
Definition at line 40 of file pgstat_backend.c.
Referenced by pgstat_backend_have_pending_cb(), pgstat_count_backend_io_op(), pgstat_count_backend_io_op_time(), pgstat_create_backend(), pgstat_flush_backend(), and pgstat_flush_backend_entry_io().
|
static |
Definition at line 39 of file pgstat_backend.c.
Referenced by pgstat_count_backend_io_op(), pgstat_count_backend_io_op_time(), pgstat_create_backend(), and pgstat_flush_backend_entry_io().
|
static |
Definition at line 48 of file pgstat_backend.c.
Referenced by pgstat_backend_wal_have_pending(), pgstat_create_backend(), and pgstat_flush_backend_entry_wal().