💡
原文英文,约2200词,阅读约需8分钟。
📝
内容提要
PostgreSQL 16 引入了 pg_stat_io,这是一个提供 I/O 行为洞察的系统视图。它区分临时和永久关系以及存储类型。建议开启 track_io_timing 以跟踪性能问题。
🎯
关键要点
- PostgreSQL 16 引入了 pg_stat_io 系统视图,提供 I/O 行为的深刻洞察。
- pg_stat_io 视图帮助用户调试和评估性能相关问题。
- pg_stat_io 包含多个重要列,如 backend_type、object、context、reads、writes 等。
- backend_type 表示信息来源的后端类型,PostgreSQL 16 目前有 9 种后端类型。
- object 列区分临时关系和永久关系,永久关系包括表和索引。
- context 列表示 I/O 操作的上下文,包括 normal、vacuum、bulkread 和 bulkwrite。
- reads 和 writes 列表示 I/O 操作的数量,单位为操作次数。
- read_time 和 write_time 列用于测量 I/O 操作所花费的时间,需开启 track_io_timing。
- writebacks 列表示从内核向操作系统发送数据的请求数量。
- extends 列表示 PostgreSQL 数据文件的增长情况,extend_time 列测量增长所需时间。
- op_bytes 列表示 I/O 操作的块大小,通常为 8k。
- hits 列监控缓存命中次数,evictions 列表示从缓存中移除的块数量。
- reuses 列表示在 I/O 操作中重用的缓冲区数量。
- fsyncs 和 fsync_time 列用于区分数据写入磁盘的情况。
- stats_reset 列表示数据累积的时间和统计信息的重置时间。
- pg_stat_io 提供了对数据库引擎内部操作的重要信息,帮助识别性能问题。
➡️