wget https://www.percona.com/downloads/percona-toolkit/3.2.0/binary/redhat/7/x86_64/percona-toolkit-3.2.0-1.el7.x86_64.rpm
sudo yum localinstall percona-toolkit-3.2.0-1.el7.x86_64.rpm
설치가 정상적으로 안되서 다시 설치했다
sudo yum reinstall percona-toolkit-3.2.0-1.el7.x86_64.rpm
설치가 정상적으로 되었으면 /usr/bin/ 디렉토리 안에서 실행파일을 확인할 수 있다.
ll /usr/bin/pt-*
pt-summary 명령어로 간단하게 CPU,Memory,Uptime 등을 조회할 수 있다.
slow-log / general-log / binary-log 에 대한 분석을 제공해주는 툴이다.
pt-query-log [파일명] > [저장할 파일]
pt-query-digest mysql-slow-query.log > slow_log.log
pt-query-digest --since '2022-03-21 12:00:00' --until '2022-04-21 12:00:00' mysql-slow-query.log > slow_log_since.log
제일 위에는 해당 기간동안에 실행된 쿼리에 대한 전체적인 개요가 표시된다.
그 밑으로는 실행되었던 쿼리 중 실행시간이 가장 길었던 쿼리순으로 정보가 표시되어 있다.
각 컬럼에 대한 설명은 다음과 같다
그 밑으로는 RANK에 표시된 쿼리순으로 디테일한 정보가 표시된다.
pt-query-log 수행 후 stdout 으로 지정한 파일에 저장할 수도 있지만, --review 옵션을 통해
database에 저장할 수도 있다.
pt-query-digest --review h=localhost,u=dbalkh,p=[비밀번호] mysql-slow-query.log
destination을 지정하지 않으면 기본적으로 percona_schema.query_review 테이블에 저장된다.
report만큼 자세한 사항이 기록되지 않아서 아쉬움이 있는데, 디테일한 정보를 저장할 수 있는 옵션이 있을 것 같다.. 아시는분 있으면 댓글 부탁드립니다!
일정 기간 동안(하루/일주일) slow-query를 ON 하여 slow-query를 수집하고,
해당 기간동안에 발생한 slow-query를 검토하여 개선할 수 있다.