데이터베이스 관리자는 자주 궁금해합니다."지금 시스템은 무엇을 하고 있나요?"이 장 그것을 알아내는 방법에 대해 논의합니다.
데이터베이스 활동을 모니터링하는 데 여러 도구를 사용할 수 있습니다 그리고 성능을 분석합니다. 이 장의 대부분은 다음 내용에 할애됩니다. 설명하다포스트그레SQL's통계 수집기, 하지만 그렇게 해서는 안 됩니다. 다음과 같은 일반 Unix 모니터링 프로그램을 무시합니다.ps그리고맨 위로. 또한 한번 성능이 좋지 않은 쿼리를 식별했습니다. 다음을 사용하여 조사가 필요할 수 있습니다.포스트그레SQL's설명명령.토토 결과 7.3.21 사용자 가이드토론설명및 기타 방법 개별 쿼리의 동작을 이해합니다.
대부분의 플랫폼에서,토토 결과명령 제목을 다음과 같이 수정합니다. 보고자:ps그래서 그 개인은 서버 프로세스를 쉽게 식별할 수 있습니다. 샘플 디스플레이 이다
$ps auxww | grep ^postgres postgres 960 0.0 1.1 6104 1480 pts/1 SN 13:17 0:00 postmaster -i postgres 963 0.0 1.1 7084 1472 pts/1 SN 13:17 0:00 postgres: 통계 버퍼 프로세스 postgres 965 0.0 1.1 6152 1512 pts/1 SN 13:17 0:00 postgres: 통계 수집기 프로세스 postgres 998 0.0 2.3 6532 2992 pts/1 SN 13:18 0:00 postgres: tgl runbug 127.0.0.1 유휴 postgres 1003 0.0 2.4 6532 3128 pts/1 SN 13:19 0:00 postgres: tgl regression [local] SELECT 대기 중 postgres 1016 0.1 2.4 6532 3080 pts/1 SN 13:19 0:00 postgres: tgl 회귀 [로컬] 트랜잭션에서 유휴
(적절한 호출ps플랫폼에 따라 다르며, 자세한 내용도 마찬가지입니다. 표시됩니다. 이 예는 최근 Linux 시스템에서 가져온 것입니다.) 첫 번째 여기에 나열된 프로세스는우체국장, 마스터 서버 프로세스. 이에 대해 표시된 명령 인수 출시 당시 주어진 것과 동일합니다. 다음 두 프로세스는 통계 수집기를 구현합니다. 다음 섹션에서 자세히 설명합니다. (이것들은 그렇지 않을 것이다. 통계를 시작하지 않도록 시스템을 설정한 경우 표시됩니다. 수집기.) 나머지 각 프로세스는 서버 프로세스입니다. 하나의 클라이언트 연결을 처리합니다. 이러한 각 프로세스는 양식에 명령줄 표시
포스트그레스:사용자 데이터베이스 호스트 활동
사용자, 데이터베이스 및 연결 소스 호스트 항목이 남아 있습니다. 클라이언트 연결 수명 동안 동일하지만 활동 표시기가 변경됩니다. 활동은 다음과 같습니다.유휴(즉, 클라이언트 명령을 기다리는 중),거래 유휴 상태(대기 중 a 내부의 클라이언트시작차단) 또는 다음과 같은 명령 유형 이름선택. 또한,대기 중다음과 같은 경우 첨부됩니다. 서버가 현재 다른 서버가 보유한 잠금을 기다리고 있습니다. 프로세스. 위의 예에서 우리는 프로세스 1003이 다음과 같다고 추론할 수 있습니다. 프로세스 1016이 트랜잭션을 완료하기를 기다리고 있으며 잠금 등을 해제합니다.
팁: 솔라리스특별한 처리가 필요합니다. 반드시 사용해야 합니다/usr/ucb/ps, 대신/bin/ps. 또한 두 개를 사용해야 합니다.w플래그는 하나가 아닙니다. 또한 귀하의 의 원래 호출우체국장더 짧아야 합니다ps그보다 상태 표시 각 백엔드에서 제공됩니다. 세 가지를 모두 수행하지 못한 경우 것들, 그ps각각에 대한 출력 백엔드가 원본이 됩니다.우체국장명령줄.