사용자 도구

사이트 도구


database:mysql:anemometer

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
database:mysql:anemometer [2013/03/20 16:37]
kwon37xi
database:mysql:anemometer [2013/04/22 18:55] (현재)
kwon37xi
줄 5: 줄 5:
  
 ===== 설치 주의점 ===== ===== 설치 주의점 =====
-  * ''git'' 필요+  * [[https://github.com/box/Anemometer#readme|Anemometer README]] 에 따라 설치 진행
   * ''php-bcmath'' 패키지 필요.   * ''php-bcmath'' 패키지 필요.
   * ''/etc/php.ini''에 ''date.timezone = Asia/Seoul'' 설정 필요.   * ''/etc/php.ini''에 ''date.timezone = Asia/Seoul'' 설정 필요.
  
 +===== 로그 분석해서 DB에 넣기 =====
 +  * [[http://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html|pt-query-digest]]를 사용한다.
 +  * 기본적인 쿼리 분석해서 DB 넣기 스크립트<code>
 +pt-query-digest --user=anemometer --password=superSecurePass \
 +                  --review h=db.example.com,D=slow_query_log,t=global_query_review \
 +                  --history h=db.example.com,D=slow_query_log,t=global_query_review_history \
 +                  --no-report --limit=0% \ 
 +                  --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\""
 +                  slow_query_log_file.log
 +</code>
 +    * ''$HOSTNAME'' 부분은 분석대상 쿼리의 호스트이름을 넣어주면 ''global_query_review_history.hostname_max'' 컬럼에 hostname 값으로 입력이 되게 되며 검색 조건으로 해당 hostname을 지정할 수 있게 된다.
 +    * ''slow_query_log_file.log''를 자신의 Slow query log 파일로 변경한다.
 +    * 분석 결과 DB 관련 정보는 자신이 설정한대로 바꿔 넣는다.
 +  * pt-query-digest 구 버전에서는 ''--review-history'' 였지만, 2.2.1 버전에서는 ''--history''로 옵션이 바뀐 것 같음.
 +===== nginx에 설치 =====
 +  * ''php-fpm'' 패키지 설치.
 +  * nginx와 php-fpm을 패키지로 설치하면 ''/etc/nginx/fastcgi_params'' 파일이 생성된다.
 +  * 잘 안될경우 [[nginx:log|nginx log]]를 통해 php-fpm 관련된 ''$document_root'', ''$fastcgi_script_name'' 변수들을 찍어보고 비교해 본다. 보통은 ''root'',''alias''등의 경로 지정이 잘못돼서 안 되는 경험을 했다.
 +  * ''php-fpm'' 설정에서, ''user''와 ''group''이 실제 PHP 파일들이 있는 디렉토리와 파일에 대한 권한과 동일하도록 변경해야 한다.
 +  * ''/var/www/html/anemometer''에 설치했다고 할 때,<code>
 +server {
 +    listen 80;
 +    server_name example.com;
 +    
 +    location /anemometer {
 +        root   /var/www/html;
 +        index  index.html index.htm;
 +    }
 +
 +   # *.php 파일만 php-fpm 이 처리한다.
 +   location ~ ^/anemometer/.+\.php$ {
 +        root   /var/www/html;
 +        index  index.html index.htm;
 +
 +        fastcgi_split_path_info ^(.+\.php)(/.+)$;
 +        fastcgi_pass 127.0.0.1:9000;
 +        fastcgi_index index.php;
 +        include fastcgi_params;
 +        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 +        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
 +   }
 +}
 +</code>
 +
 +===== 결과 화면 컬럼 설명 =====
 +  * ''checksum'' : 쿼리 체크섬. 퍼머링크로 사용되어 다른 사람들과 쿼리 URL을 공유할 수 있음.
 +  * ''snippet'' : 쿼리 문자열
 +  * ''query_time_avg'' : 평균 쿼리 시간 - 초(sec)
 +  * ''rows_sent_avg'' : 평균 결과 행 수
 +  * ''ts_cnt'' : 쿼리 실행 갯수(sloq query로 떨어진 것만)
 +  * ''Query_time_sum'' : 총 쿼리 시간 합.
 +  * ''Rows_sent_sum'' : 총 결과 행 수
database/mysql/anemometer.1363765047.txt.gz · 마지막으로 수정됨: 2013/03/20 16:37 저자 kwon37xi