“命令”列中带括号的数字对于 postgres 进程意味着什么?

“命令”列中带括号的数字对于 postgres 进程意味着什么?

当我执行时

ps aux | grep postgres

或者顶部 | grep postgres

我获取所有 postgres 进程的一些信息,最后一列(命令)具有以下结构:

postgres: username db ip_address(xxxxx) QUERY_TYPE

例如:

postgres: postgres test 192.168.0.100(33195) SELECT

这个数字(33195)意味着什么?

我的数据库遇到问题,我想知道这些信息是否可以帮助我。有些查询花费的时间太长。

这是某种过程依赖性吗?

答案1

根据PostgreSQL 文档,

在大多数 Unix 平台上,PostgreSQL 会修改 ps 报告的命令标题,以便可以轻松识别各个服务器进程

在我看来,您的示例中的是与 postgres 服务器连接的33195可能远程系统上的端口。192.168.0.100用类似的东西确认netstat -an | grep 33195

刚刚找到了postgresql 的 git 存储库我将行为追溯到做后端函数,它会ps像这样更新列表:

/*
 * Set process parameters for ps
 *
 * WARNING: On some platforms the environment will be moved around to
 * make room for the ps display string. So any references to
 * optarg or getenv() from above will be invalid after this call.
 * Better use strdup or something similar.
 */
init_ps_display(real_argc, real_argv, port->user, port->database,
                remote_host);

其中remote_host 是之前设置的。

相关内容