如何在AWS Aurora中使用pg_proctab扩展开展PostgreSQL监控
pg_proctab() 返回列含义
所有字段均对应Linux /proc 文件系统内的进程统计信息,具体含义如下:
pid:操作系统层面的进程ID,和PostgreSQL系统表pg_stat_activity的pid字段完全对应comm:进程短命令名,长度限制为15字符,PostgreSQL进程此处通常显示为postgresfullcomm:进程完整命令行参数,可区分是WAL写入、检查点、自动清理等后台进程,还是客户端连接对应的服务进程state:进程当前运行状态,常见值包括R(运行中)、S(可中断睡眠)、D(不可中断睡眠)、Z(僵尸进程)等ppid:父进程ID,PostgreSQL子进程的ppid通常对应postmaster主进程的pidpgrp:进程组IDsession:进程所属会话IDtty_nr:进程关联的终端设备编号tpgid:关联终端的前台进程组IDflags:进程内核标志位,对应Linux/proc/[pid]/stat的flags字段minflt:进程无需加载磁盘页产生的次缺页中断次数cminflt:进程及其所有子进程的累计次缺页中断次数majflt:进程需要加载磁盘页产生的主缺页中断次数cmajflt:进程及其所有子进程的累计主缺页中断次数utime:进程在用户态运行的总时长,单位为时钟滴答数stime:进程在内核态运行的总时长,单位为时钟滴答数cutime:进程及其所有子进程累计的用户态运行时长cstime:进程及其所有子进程累计的内核态运行时长priority:进程的内核调度优先级nice:进程的nice值,取值范围-20~19,值越低调度优先级越高num_threads:进程包含的线程总数itrealvalue:实时定时器的到期时间starttime:进程启动时间,单位为系统启动以来的时钟滴答数vsize:进程的虚拟内存占用总量,单位为字节rss:进程的物理内存驻留页数,乘以系统页大小即可得到实际占用的物理内存量exit_signal:进程退出时发送给父进程的信号编号processor:进程当前运行的CPU核心编号rt_priority:实时进程的优先级值policy:进程的内核调度策略delayacct_blkio_ticks:进程等待块IO的总时长,单位为时钟滴答数uid:进程运行对应的操作系统用户IDusername:进程运行对应的操作系统用户名rchar:进程读取的总字节数,包含缓存IO的统计量wchar:进程写入的总字节数,包含缓存IO的统计量syscr:进程发起的读系统调用总次数syscw:进程发起的写系统调用总次数reads:进程实际发起的磁盘读操作次数writes:进程实际发起的磁盘写操作次数cwrites:进程累计的缓存写操作次数
与pg_stat_activity关联后的结果对应关系
以pg_stat_activity.pid = pg_proctab.pid为关联条件查询时,返回的每一行对应一个正在运行的PostgreSQL进程的全量信息:
pg_stat_activity侧字段展示PostgreSQL内部视角的进程属性:包括客户端连接信息、当前执行的SQL语句、事务状态、等待事件等数据库层面的运行数据pg_proctab侧字段展示操作系统视角的同进程资源状态:包括CPU、内存、IO的实时消耗等系统层面的统计数据- 返回结果覆盖所有类型的PostgreSQL进程:包括postmaster主进程、WAL写入进程、检查点进程、自动清理进程等后台守护进程,以及所有客户端连接对应的后端服务进程,可通过
comm或fullcomm字段快速区分进程类型。
内容的提问来源于stack exchange,提问作者Chetan Dev Khanna
相关产品推荐
相关产品推荐

