当我执行时
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
在大多数 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 是之前设置的。