pg_stat_tcpinfo
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_stat_tcpinfo | 1.1 | STAT | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 6480 | pg_stat_tcpinfo | 否 | 是 | 否 | 是 | 否 | 是 | - |
Linux >=4.18; procfs and NETLINK_INET_DIAG required. Monitoring roles can see all server-OS-user sockets. No preload or upstream 1.0-to-1.1 upgrade script. PG14-18; PGDG remains principal supplier; PGSTY 1.1 batch supplements published.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 1.1 | 1817161514 | pg_stat_tcpinfo | - |
| RPM | PGDG | 1.1 | 1817161514 | pg_stat_tcpinfo_$v | - |
| DEB | PGDG | 1.1 | 1817161514 | postgresql-$v-pg-stat-tcpinfo | - |
构建
您可以使用 pig build 命令构建 pg_stat_tcpinfo 扩展的 RPM / DEB 包:
安装
您可以直接安装 pg_stat_tcpinfo 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:
pg_stat_tcpinfo 1.1 通过 SQL 提供 Linux TCP 套接字统计,利用往返延迟、重传次数、拥塞控制和队列大小,帮助排查缓慢的客户端连接、复制链路与外部服务器连接,无需登录主机 Shell。
扩展要求 Linux 4.18 或更新版本,能够访问 /proc 和 NETLINK_INET_DIAG 接口。须由超级用户安装,无需预加载或重启数据库。
核心用法
对象与指标
pg_stat_tcpinfo 视图调用 pg_stat_get_tcpinfo()。每行包含进程与操作系统用户 ID、本地和远端地址及端口、连接状态、收发队列,以及 tcpinfo JSONB 对象。支持 IPv4 和 IPv6 套接字;rtt 以毫秒为单位,total_retrans 为累计重传计数。
视图包含数据库服务端操作系统用户拥有的全部 TCP 套接字,也可能包含同一账号下其他数据库集群或程序的连接。按后端 PID 关联可将结果缩小到当前集群可见的连接。Unix 域连接不属于 TCP 套接字,不会显示;TIME-WAIT 套接字没有属主,也会被排除。旧内核不支持的指标可能为空。
权限
安装脚本撤销函数的公共执行权限,并将函数和视图访问权授予 pg_read_all_stats,pg_monitor 继承这些权限。普通应用角色默认不能读取指标。额外授权会暴露服务端操作系统用户的全部套接字,并不限于调用者自己的数据库连接。
运行边界
每次调用都会扫描进程描述符并查询内核,提供当前状态,不保存历史采样。容器的 PID、网络命名空间和 procfs 访问限制决定可见的套接字与进程。应根据进程和连接数量选择采样间隔。
使用与服务端 PostgreSQL 主版本匹配的软件包。1.1 版本包含 1.0 和 1.1 的新安装 SQL,但未提供两者之间的升级脚本,因此现有 1.0 安装没有上游提供的 ALTER EXTENSION pg_stat_tcpinfo UPDATE 升级路径。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)