내가 실행할 때
ps aux | grep postgres
또는상단 | grep 포스트그레스
모든 postgres 프로세스에 대한 정보를 얻었으며 마지막 열(명령)의 구조는 다음과 같습니다.
postgres: username db ip_address(xxxxx) QUERY_TYPE
예를 들어:
postgres: postgres test 192.168.0.100(33195) SELECT
이 숫자(33195)는 무엇을 의미하나요?
내 데이터베이스에 문제가 있는데 이 정보가 도움이 될 수 있는지 알고 싶습니다. 일부 쿼리는 너무 오래 걸립니다.
이것은 일종의 프로세스 종속성입니까?
답변1
~에 따르면PostgreSQL 문서,
대부분의 Unix 플랫폼에서 PostgreSQL은 개별 서버 프로세스를 쉽게 식별할 수 있도록 ps에 의해 보고된 명령 제목을 수정합니다.
33195
귀하의 예에서 포트는 postgres 서버가 연결된 가능한 원격 시스템 인 것 같습니다 . 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가 있습니다.