내 워드프레스 사이트의 상태 확인 – Query Monitor


1. 개요

저는 워드프레스로 사이트를 제작할때 할때 항상 하는 작업이 몇가지가 있습니다.

그중에 하나가 바로 이 쿼리 모니터라는 플러그인을 설치하고 활성화 하는것입니다.

이유는 간단합니다. 현재 이 워드프레스 사이트의 상태를 이처럼 알기쉽게 잘 알려주는 플러그인이 없기 때문입니다.

조금 더 자세하게 설명하자면

예를들어 사이트가 플러그인을 몇개 설치했더니 뭔가 상태가 좀 이상하다, 혹은 사이트가 이전보다 느려진것같다고 느껴질때가 있는데

원인을 알아야 해결을 할 수 있습니다. 이 쿼리 모니터는 이 원인을 파악하는데 도움이 되며 특히 워드프레스로 사이트를 제작하는 개발자에게는 필수라고 생각됩니다.

이 플러그인의 사용법을 간단하게 알아보겠습니다.

 

설치

  1. 쿼리 모니터 플러그인 사이트에서 다운받아 설치 혹은 워드프레스 관리자의 플러그인 페이지에서 query monitor 로 검색해서 설치
  2. 활성화
  3. 어드민 바에 아래와 같은 항목이 추가됐는지 확인
  4. wp-content/plugins/query-monitor/wp-content/db.php 파일을 복사해서 wp-content 폴더에 복사해 넣습니다. ( 참고 링크 )

일단 여기까지가 끝입니다.  별도의 설정화면은 없습니다.

 

사용법 , 보는법

1. 간략 보기

숫자만 써있어서 알기 어려울텐데, 위 스크린샷을 기준으로 설명드리겠습니다.

  1. 0.94s : 이 페이지가 로딩에 걸린 시간 ( 참고용이며 정확하지 않을수 있습니다. )
  2. 22.41MB : 이 페이지 로딩에 사용된 메모리
  3. 0.0261s : 이 페이지에 사용된 데이터베이스에서 값을 가져올때(쿼리) 걸린 시간의 합
  4. 106Q : 이 페이지에 사용된 쿼리의 총 수

참고로 위 스크린샷은 이 사이트 관리자 글목록의 결과값이며 보통 106개의 쿼리에 페이지 로딩에 0.9 초정도 걸리는것 같습니다.

보시면 알겠지만 이 플러그인은 데이터베이스에서 값을 가져오는데 걸리는 시간과 오류가 있는지를 알려주는데에 중점을 두고 있습니다.

일단 개발자가 아니라면 1번과 3번 숫자의 의미만 알 수 있으면 됩니다. ( 사실 배경색이 빨간색으로 표시됐을경우의 의미를 아는게 더 중요합니다. )

여기서 여러분이 운영중인 워드프레스 사이트에 쿼리 모니터를 설치해놓고 위 스크린샷과 비교를 해보는것도 좋겠습니다. 1초 정도에 로딩이 끝난다고 한다면 특별한 문제는 없다고 생각하셔도 됩니다.

그런데 여기서 위 숫자보다 중요한것은 “배경색” 입니다. 뭔가 문제가 있을경우에는 아래와 같이 빨간색으로 표시됩니다.

이렇게 나온다는것은 아파치 에러 로그에도 기록될 정도의 에러가 발생했다는 뜻이며 이 페이지를 불러올때 뭔가가 정상적으로 동작하지 않은게 있다는 의미입니다. 우선적으로 해결하는것이 좋습니다.

제 경험상 빨간색이 뜰때는 PHP 코드에 문제가 있거나 외부 사이트에서 값을 받아오는 동작이 있는데 못받아오는 경우 ( 예 : 플러그인이나 테마 버전 체크 등 ) 가 많았습니다.

오렌지색으로 뜰 경우도 있는데 이건 치명적이지는 않지만 DB 에서 값을 받아오는 동작이 느릴경우, 즉 슬로우 쿼리가 발생했다거나 PHP 코드에 기본값 설정이 안되있는 등의 경우입니다.

 

2. 상세 보기

여기서부터는 개발자가 봐야할 영역입니다. 어드민바의 쿼리 모니터 항목에 마우스를 올리면 아래와 같이 표시됩니다.

항목이 많으므로 간략하게 설명드리겠습니다. 좀더 자세한것은 플러그인 페이지의 설명을 참조하시면 됩니다.

  1. PHP deprecated : php 코드에 에러가 있을경우 혹은 권장사항 알림
  2. Queries : 이 페이지에 사용된 쿼리들 목록
  3. Queries by caller : 쿼리 정보를 호출한 펑션 단위로 표시
  4. Queries by Component : 쿼리 정보를 컴포넌트 ( 플러그인, 테마 등..) 단위로 표시
  5. request : 이 페이지에 사용된 값, 정보,
  6. rewrite rules : 이 페이지의 URL 규칙
  7. template : 이 페이지의 파일
  8. scripts & styles : 이 페이지를 표시할때 사용된 스크립트와 스타일
  9. hook : 이 페이지에 사용된 훅, 액션 및 필터 목록
  10. languages : 현재 사이트에 플러그인과 테마의 언어파일이 있는지 여부
  11. http requests : 외부 사이트와 연동할경우 동작 목록
  12. transients set : 이 페이지에 사용된 워드프레스 db 캐시 목록
  13. environment : 서버 환경 정보
  14. 이 페이지에서 사용할 수 있는 true false 펑션 정보, 위 스크린샷으로 설명하자면 이 사이트는 멀티 사이트이고 그중 메인 사이트이며 SSL 이 적용됐으며 글 상세페이지라는것을 알 수 있습니다.

여기서 중요한것은 1,2,11 번입니다.

1번은 PHP 코드가 에러가 났을 경우인데 플러그인 혹은 테마의 코드가 잘못 만들어져 있다면 발생합니다.

2번은 DB 인데 에러는 잘 발생하지 않지만 한꺼번에 많은 값을 가져오는 큰 쿼리일 경우 슬로우쿼리로 표시됩니다. DB 의 설정값마다 다를수 있지면 여기서는 0.05초 이상이 걸리면 슬로우쿼리로 취급하며 0.05초면 빠른거 아냐? 라고 생각할수 있는데 DB 가 느리면 페이지에 별 내용이 없더라도 속도가 느려지는 일차적인 원인이 됩니다.

이 슬로우쿼리는 여러 원인이 있을수 있는데, 어쩌다 한번이 아닌 모든 페이지에서 지속적으로 같은 슬로우쿼리가 발생한다거나 하면 수정을 하는것이 좋습니다. 1초 이상이 걸린다면 심각하다고 봐야하며 그 페이지는 빨라질 수가 없습니다.

8번은 필요한 스크립트나 스타일을 불러오지 못했을경우 빨간색으로 표시됩니다. 간혹 발생합니다.

11번은 생각보다 자주 발생하며 외부 사이트와 연동, 예를들어 관리자의 플러그인 목록 페이지에 가면 워드프레스 공식 사이트에서 내 플러그인과 최신 버전과의 버전 체크를 하게 되는데

이 동작이 시간이 걸리거나 값을 못받아오는 경우입니다. 서버 환경 (호스팅이 아닌 자체 서버) 에 따라서는 아예 값을 받아오지 못하는 경우도 봤으며 이때문에 페이지 로딩에 1분정도 걸리는 경우도 봤습니다.

 

마치며

이 플러그인은 겉으로는 알기 힘든 사이트의 상태를 알기쉽게 알려주며 의사로 치면 청진기같은 도구라고 생각하면 될것같습니다.

개인적으로 워드프레스 개발은 이 쿼리모니터 플러그인이 나오기 전과 후가 많이 달라졌다고 생각하며 번거로운 확인 작업이 정리해서 깔끔하게 표시해주기때문에 한번에 끝나게 됐습니다.

실제 유저 페이지에는 영향을 끼치지 않기때문에 프로그래밍의 지식이 없다고 하더라도 일단 설치는 해놓고 내 사이트의 상태가 어떤지 체크는 해두는게 좋습니다. ( 배경색이 빨간색이 되는지 )

예를들어 대체로 문제가 생긴다면 첫째로 플러그인, 둘째로 테마인데

이 사이트의 경우 개인 블로그라서 규모가 작은것처럼 보이지만

플러그인도 200개 이상이 설치되어있고 활성화된것도 30개가 넘으며 제가 테스트용으로도 막 사용하며 만들다가 만 플러그인도 여러개가 있어서 정리는 안되고 있지만  페이지 로딩 속도는 1초 이상은 잘 안걸리는것 같습니다. ( 한꺼번에 몰아서 지우긴 할겁니다..; )

이 쿼리 모니터를 보고 속도에 영향을 준다거나 에러가 발생하는 플러그인은 아예 도입을 하지 않습니다. 관리를 하게 된다는 뜻입니다.

개인적으로 플러그인이 아니라 워드프레스 기본 기능에 추가해도 좋을만한 잘 만들어진 플러그인이라고 생각합니다.

 

참고로 이 플러그인을 개발한 분은 이 외에도 유용한 플러그인을 많이 개발해 뒀으니 한번쯤 봐두면 유용할 겁니다.

query monitor 개발자 플러그인 목록

 



댓글 남기기

Be the First to Comment!

  댓글 이메일 구독  
구독 설정 :