학습 노트: MySQL 기준 테스트 tpcc - mysql

7626 단어 #MySQL/MariaDB
하면, 만약, 만약...http://blog.csdn.net/sweeper_freedoman/article/details/73611154) 는 MySQL 기준 테스트 의 전문 버 전 입 니 다. tpcc - mysql (https://code.launchpad.net/~ percona - dev / perconatools / tpcc - mysql) 가 기함 판이 다.이 는 전 세계 유명 데이터 베이스 서비스 업 체 Percona 회사 의 프로그래머 가 개발 하여 3NF (제3 모델) 로 이 루어 진 창고 회사 데이터 모델 을 통 해 실제 업무 스트레스 를 모 의 한다. 이 데이터 모델 은 창고 회사 의 재고 관리, 판매, 제품 배포, 지불 과 주문 조회 등 현실 장면 에서 의 일련의 조작 을 포함 하고 모두 9 장의 표를 포함한다.그 결과 학계 와 산업 계 에서 보편적으로 사용 되 는 TPC - C 로 OLTP 응용의 성능 을 평가 했다.
     github 에 tpcc - mysql 설치 하기 (https://github.com/Percona-Lab/tpcc-mysql) 클 라 이언 트 의 원본 코드 를 컴 파일 하면 됩 니 다.
root@ubuntu:~# git clone https://github.com/Percona-Lab/tpcc-mysql.git
root@ubuntu:~# cd tpcc-mysql/ ; ls
root@ubuntu:~/tpcc-mysql# cd src ; make
cc -w -O3 -g -I. `mysql_config --include`  -c load.c
/bin/sh: 1: mysql_config: not found
load.c:19:19: fatal error: mysql.h:          
compilation terminated.
Makefile:22: recipe for target 'load.o' failed
make: *** [load.o] Error 1
root@ubuntu:~/tpcc-mysql/src# make clean
rm -f *.o

     아아, 오류 가 발생 했 습 니 다. 제 로 컬 Ubuntu Linux 에는 "mysql config" 가 부족 합 니 다.
root@ubuntu:~/tpcc-mysql/src# mysql_config
  “mysql_config”    。            :
apt install libmysqlclient-dev
root@ubuntu:~/tpcc-mysql/src# apt install libmysqlclient-dev
root@ubuntu:~/tpcc-mysql/src# make
root@ubuntu:~/tpcc-mysql/src# cd .. ; ls | grep ^tpcc
tpcc_load
tpcc_start

     mysql_config 포함 " libmy sqlclient - dev 에 apt 설치 (yum 시스템 은 " mysql - devel), 그리고 컴 파일 에 성 공 했 습 니 다.tpcc - mysql 메 인 프로그램 디 렉 터 리 아래 에 tpcc 로 시작 하 는 핵심 파일 이 두 개 더 있 는 것 을 볼 수 있 습 니 다.
     tpcc - mysql 기준 테스트 는 세 단계 로 나 뉘 어 라 이브 러 리 표를 만 들 고 데 이 터 를 불 러 오고 테스트 를 수행 합 니 다.
① 라 이브 러 리 시트 만 들 기.
     이 단 계 는 테스트 작업 의 준비 단계 다.기본 테스트 용 schema (건 너 뛰 기 만 들 었 다 면) 를 만 들 고 창고 회사 데이터 모델 시트 구조 (필수) 를 가 져 오고 데이터 모델 색인 제약 을 가 져 오 는 것 을 포함 합 니 다 (② 단계 로 데 이 터 를 불 러 온 후에 이 단 계 를 실행 할 수 있 습 니 다).
root@ubuntu:~/tpcc-mysql# mysqladmin -uroot -p520 create benchmarker
root@ubuntu:~/tpcc-mysql# mysql -uroot -p520 benchmarker < create_table.sql
root@ubuntu:~/tpcc-mysql# mysql -uroot -p520 benchmarker < add_fkey_idx.sql

② 데 이 터 를 불 러 옵 니 다.
     tpcc 실행load, 테스트 데 이 터 를 불 러 옵 니 다.실행 " ./tpcc load -- help "는 사용법 을 볼 수 있 습 니 다: | hostname | | port | | dbname | | | user | | password | WAREHOUSES |.이번 테스트 인 스 턴 스 는 11 개의 창 고 를 만 듭 니 다 (- w).
root@ubuntu:~/tpcc-mysql# ./tpcc_load  -h127.0.0.1 -P3306 -dbenchmarker -uroot -p520 -w11
*************************************
*** TPCC-mysql Data Loader        ***
*************************************
option h with value '127.0.0.1'
option p with value '3306'
option d with value 'benchmarker'
option u with value 'root'
option p with value '520'
option w with value '11'

     [server]: 127.0.0.1
     [port]: 3306
     [DBname]: benchmarker
       [user]: root
       [pass]: 520
  [warehouse]: 11
TPCC Data Load Started...

*****                     *****

...DATA LOADING COMPLETED SUCCESSFULLY.

     이 과정 은 기계 의 성능 과 창 고 량 을 보고 테스트 라 이브 러 리 에 데 이 터 를 쓰 는 데 시간 이 좀 걸 릴 수 있 으 며 실행 과정 은 인쇄 될 것 입 니 다.
③ 테스트 를 실시한다.
     tpcc 실행start, 창고 저장 회사 업무 장면 테스트 진행.실행 " ./tpcc start -- help "는 사용법 을 볼 수 있 습 니 다. | hostname | | port | | dbname | | | user | WAREHOUSES | | CONNECTIONS | | WARMUP TIME | | BENCHMARK TIME |.
  • 창고 수 (- w)
  • connections (- c) 연결 스 레 드 수
  • warmup_time (- r) 스 트 레 칭 시간 (초: 테스트 에 포함 되 지 않 음)
  • running_time (- l) 테스트 시간
  • report_interval (- i) 테스트 보고서 인쇄 시간 간격
  • root@ubuntu:~/tpcc-mysql# ./tpcc_start  -h127.0.0.1 -P3306 -dbenchmarker -uroot -p520 -w11 -c2 -r22 -l180
    ***************************************
    *** ###easy### TPC-C Load Generator ***
    ***************************************
    option h with value '127.0.0.1'
    option p with value '3306'
    option d with value 'benchmarker'
    option u with value 'root'
    option p with value '520'
    option w with value '11'
    option c with value '2'
    option r with value '22'
    option l with value '180'
    
         [server]: 127.0.0.1
         [port]: 3306
         [DBname]: benchmarker
           [user]: root
           [pass]: 520
      [warehouse]: 11
     [connection]: 2
         [rampup]: 22 (sec.)
        [measure]: 180 (sec.)
    
    RAMP-UP TIME.(22 sec.)
    
    MEASURING START.
    
      10, trx: 6, 95%: 2665.596, 99%: 3636.936, max_rt: 3636.496, 5|789.268, 0|140.956, 1|1560.098, 1|10399.828
      20, trx: 9, 95%: 3520.185, 99%: 3520.185, max_rt: 3520.139, 9|689.531, 1|156.137, 1|965.955, 1|10290.280
      30, trx: 9, 95%: 1919.477, 99%: 1919.477, max_rt: 1919.449, 10|633.419, 1|868.591, 1|2240.299, 0|0.000
    
      *****                     *****
      
    STOPPING THREADS..
    
    
      [0] sc:0 lt:173  rt:0  fl:0 avg_rt: 968.7 (5)
      [1] sc:1 lt:172  rt:0  fl:0 avg_rt: 268.5 (5)
      [2] sc:0 lt:17  rt:0  fl:0 avg_rt: 183.5 (5)
      [3] sc:0 lt:18  rt:0  fl:0 avg_rt: 1739.0 (80)
      [4] sc:0 lt:17  rt:0  fl:0 avg_rt: 9209.2 (20)
     in 180 sec.
    
    
      [0] sc:0  lt:173  rt:0  fl:0 
      [1] sc:1  lt:172  rt:0  fl:0 
      [2] sc:0  lt:17  rt:0  fl:0 
      [3] sc:0  lt:18  rt:0  fl:0 
      [4] sc:0  lt:17  rt:0  fl:0 
    
     (all must be [OK])
     [transaction percentage]
            Payment: 43.47% (>=43.0%) [OK]
       Order-Status: 4.27% (>= 4.0%) [OK]
           Delivery: 4.52% (>= 4.0%) [OK]
        Stock-Level: 4.27% (>= 4.0%) [OK]
     [response time (at least 90% passed)]
          New-Order: 0.00%  [NG] *
            Payment: 0.58%  [NG] *
       Order-Status: 0.00%  [NG] *
           Delivery: 0.00%  [NG] *
        Stock-Level: 0.00%  [NG] *
    
    
                     57.667 TpmC

         테스트 의 중요 한 정 보 는 포맷 을 통 해 인쇄 되 었 습 니 다. " report interval '(- i) 옵션 설정 은 기본 10s 로 이 시간 동안 창고 회사 의 주문 처 리 를 설명 합 니 다.이번 테스트 전 10s 출력 과 같이
    10, trx: 6, 95%: 2665.596, 99%: 3636.936, max_rt: 3636.496, 5|789.268, 0|140.956, 1|1560.098, 1|10399.828
  • 10。기준 테스트 실행 시간 (초).
  • trx。현재 주어진 구간 내 사무 (New - Order) 처리 능력 은 값 이 클 수록 좋 습 니 다.“ 6. 95%: 2665.596, 99%: 3636.936 '은 각각 사 무 량, 95% 와 99% 의 사무 응답 시간 (초) 이다.
  • max_rt。현재 주어진 구간 내 사무 (New - Order) 응답 시간의 최대 값 (초), 3636.496.
  • the rest。기타 사무 (Payment, Order - Status, Delivery, Stock - Level) 의 처리 능력 과 응답 시간 이 매우 커서 무시 할 수 있 습 니 다.

  •      테스트 의 마지막 줄 은 TpmC 값 을 줍 니 다.Tpm 는 transaction per minute 의 줄 임 말로 C 대표 TPC (Transaction Processing Performance Council, 사무 처리 성능 협회) 의 C 기준 테스트 입 니 다.이 값 의 계산 은 위의 것 에서 나온다. trx '결과, 기본 적 인 상황 에서 먼저 New Order per 10 Second 의 평균 값 을 구하 고 6 을 곱 한 다음 에 TpmC 값 을 얻 습 니 다.이 값 은 클 수록 좋 으 며, 더욱 우수한 사무 처리 능력 을 나타 낸다.이번 테스트 의 TpmC 값 은 57.667 로 내 노트북 의 작은 가상 컴퓨터 에서 나 왔 다.
         요 며칠 동안 MySQL 기준 테스트 의 지식 과 도 구 를 중점적으로 배 웠 는데, 이러한 내용 은 잠시 tpcc - mysql 도구 에 대한 학습 으로 끝났다.마지막 으로 소박 하 게 돌아 가 성능 테스트 에서 자주 사용 하 는 지 표를 정리 해 보 자.이 지표 들 의 함 의 를 이해 하 는 것 이 기준 테스트 를 실시 하 는 것 보다 더 중요 할 지도 모른다.MySQL 데이터 베 이 스 는 주로 스루풋 과 디스크 I / O 두 가지 병목 을 포함한다.스루풋 은 주로 QPS, TPS, Request 및 Request Time 에 나타난다.디스크 I / O 는 주로 IOPS 에 나타난다.
  • QPS。Query Perl Second (초당 조 회 량), 조회 횟수 / 시간 (초).
  • TPS。Transaction Per Second (초당 사 무 량), 사무 횟수 / 시간 (초).
  • IOPS。Input / Output Operations per Second (초당 읽 기와 쓰기 작 동 량), 읽 기와 쓰기 횟수 / 시간 (초).

  • 참고:
    (MySQL 기술 내막 InnoDB 메모리 엔진)https://book.douban.com/subject/24708143/) < 고성능 MySQL > (https://book.douban.com/subject/23008813/)

    좋은 웹페이지 즐겨찾기