컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 일반적으로 사용되는 여러 가지 MySQL 성능 테스트 도구

일반적으로 사용되는 여러 가지 MySQL 성능 테스트 도구

1. mysqlslap

설치: 간단합니다. mysql을 설치하기만 하면 준비가 완료됩니다.

기능: 데이터베이스 성능을 테스트하기 위한 동시성을 시뮬레이션합니다.

장점: 간단하고 사용하기 쉽습니다.

단점: 생성되는 데이터의 규모를 특정할 수 없다. 테스트 과정이 10만 레벨인지, 백만 레벨 데이터인지 명확하지 않다. 최적화된 테스트를 위해서는 기존 데이터베이스 및 개별 테스트에 더 적합합니다.

사용법:

mysqlslap --help를 사용하여 사용법을 표시할 수 있습니다.

기본 옵션은 다음 파일에서 주어진 순서대로 읽습니다:

p>

p>

/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

--동시성은 동시성 수를 나타내며, 배수는 구분될 수 있습니다. 쉼표로 표시하면 concurrency=10 ,50,100이며 동시 연결 스레드 수는 각각 10, 50, 100입니다.

--engines는 테스트할 엔진을 나타냅니다. 구분 기호로 구분된 여러 엔진이 있을 수 있습니다.

--반복은 이러한 테스트를 실행해야 하는 횟수를 나타냅니다.

--auto-generate-sql은 시스템 자체에서 생성된 SQL 스크립트로 테스트하는 것을 의미합니다.

--auto-generate-sql-load-type은 테스트가 읽기, 쓰기 또는 둘의 혼합(읽기, 쓰기, 업데이트, 혼합)인지 여부를 나타냅니다.

--number -of-queries는 실행할 총 쿼리 수를 나타냅니다. 각 고객이 실행한 쿼리 수는 총 쿼리 수/동시 쿼리 수로 계산할 수 있습니다.

--debug-info는 CPU 및 메모리 관련 정보의 추가 출력을 의미합니다.

--number-int-cols: 테스트 테이블을 생성하기 위한 int 필드 수

--auto-generate-sql-add-autoincrement: auto_increment의 자동 추가를 나타냅니다. 버전 5.1.18부터 생성된 테이블 열에

--number-char-cols 테스트 테이블에 char 유형 필드 수를 생성합니다.

--create-schema는 테스트용 스키마입니다. MySQL의 스키마도 데이터베이스입니다.

--쿼리는 사용자 정의 스크립트를 사용하여 테스트를 실행합니다. 예를 들어 사용자 정의 저장 프로시저나 SQL 문을 호출하여 테스트를 실행할 수 있습니다.

--only-print SQL 문이 무엇인지 확인하기 위해 인쇄하려는 경우 이 옵션을 사용할 수 있습니다.

mysqlslap -umysql -p123 --concurrency=100 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load- type=mixed --engine=myisam --number-of-queries=10 --debug-info

또는:

데이터베이스 및 SQL 문 지정:

mysqlslap -h192.168.3.18 -P4040 --concurrency=100 --iterations=1 --create-schema='test' --query='select * from test;' --number-of-queries=10 - -debug-info -umysql -p123

완료된 작업을 보려면 다음을 추가할 수 있습니다. --only-print

벤치마크

평균 숫자 모든 쿼리를 실행하는 데 걸리는 시간(초): 25.225초

모든 쿼리를 실행하는 데 걸리는 최소 시간(초): 25.225초

모든 쿼리를 실행하는 데 걸리는 최대 시간(초): 25.225초

쿼리를 실행하는 클라이언트 수: 100

클라이언트당 평균 쿼리 수: 0

위에서는 100개의 클라이언트를 동시에 실행하는 데 25초가 걸린다는 것을 나타냅니다.

2. sysbench

설치:

mand에서 설치할 수 있으며 찾을 수 없음

../libtool: line 871: libtool: 알 수 없는 태그 무시 : 명령을 찾을 수 없음

../libtool: line 838: X--mode=link: 명령을 찾을 수 없음

../libtool: line 1004: *** 경고: 추론 중 작동 모드는 더 이상 사용되지 않습니다.: 명령을 찾을 수 없습니다

../libtool: line 1005: *** Libtool의 향후 버전에서는 --mode=MODE를 지정해야 합니다.: 명령을 찾을 수 없습니다

../libtool: line 2231: X-g: 명령을 찾을 수 없음

../libtool: line 2231: X-O2: 명령을 찾을 수 없음

그런 다음 autogen을 실행합니다. .sh 파일을 루트 디렉터리에 저장한 다음 구성 && make && make install을 다시 시작하세요.

3. 오류가 보고된 경우:

sysbench: 공유 라이브러리를 로드하는 동안 오류가 발생했습니다: libmysqlclient.so. 18: 공유 객체를 열 수 없습니다

파일: 해당 파일이나 디렉터리가 없습니다.

그런 다음 다음을 실행하세요:

n -s /usr/local/mysql5.5/mysql/lib/libmysqlclient.so.18 /usr/lib64 /

4. autogen.sh 실행 시 다음 오류가 보고되는 경우:

./autogen.sh: line 3: aclocal: 명령을 찾을 수 없음

그런 다음 소프트웨어를 설치해야 합니다:

yum install automake

그런 다음 매개변수를 추가해야 합니다: AC_PROG_LIBTOOL을 찾아 주석을 달고 AC_PROG_RANLIB를 추가합니다.

기능: 동시성 시뮬레이션, CPU/메모리/스레드/IO/데이터베이스 등에 대한 성능 테스트를 수행할 수 있습니다. 데이터베이스는 현재 MySQL/Oracle/PostgreSQL을 지원합니다

장점: 테스트 데이터의 크기를 지정하거나 읽기 및 쓰기 성능을 별도로 테스트하거나 읽기 및 쓰기 혼합 성능을 테스트할 수 있습니다.

단점: 테스트하는 동안 네트워크 문제로 인해 테스트 속도가 매우 느렸지만 최종 결과도 매우 좋았고 동시성 지원도 매우 높아서 그다지 정확하지 않다는 느낌을 받았습니다.

물론 제가 원리를 이해하지 못했을 수도 있습니다

사용 방법:

데이터 준비

sysbench --test=oltp --mysql- table-engine=myisam - -oltp-table-size=400000 --mysql-db=dbtest2 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd 준비

테스트 실행

p>

sysbench --num-threads=100 --max-requests=4000 --test=oltp --mysql-table-engine=innodb --oltp-table-size= 400000 --mysql-db=dbtest1 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd run

sysbench 0.4.12: 멀티 스레드 시스템 평가 벤치마크

지정된 DB 드라이버 없음, mysql 사용

다음 옵션으로 테스트 실행:

스레드 수: 100

OLTP 테스트 수행 중 .

혼합 OLTP 테스트 실행

특수 분포 사용(12회 반복, 75% 케이스에서 1%의 값이 반환됨)

"BEGIN" 사용 트랜잭션 시작을 위해

id 열에 auto_inc 사용

OLTP 테스트에 대한 최대 요청 수는 4000으로 제한됩니다.

스레드가 시작되었습니다!

완료.

OLTP 테스트 통계:

수행된 쿼리:

읽기: 56014

쓰기: 20005

기타: 8002

총계: 84021

트랜잭션: 4001(초당 259.14)

교착 상태: 0(초당 0.00)

읽기/쓰기 요청: 76019(초당 4923.75)

기타 작업: 8002(초당 518.29)

테스트 실행 요약:

총 시간: 15.4393초

총 이벤트 수: 4001

이벤트 실행에 소요된 총 시간: 1504.7744

요청당 통계:

최소: 33.45ms

평균: 376.10ms

최대: 861.53ms

약 9

5 백분위수: 505.65ms

스레드 공정성:

이벤트(평균/stddev): 40.0100/0.67

실행 시간(평균/stddev): 15.0477/0.22

3. tpcc-mysql

설치:

원래 웹사이트에서 소스 코드를 다운로드하는 것이 더 번거로운 경우 도구, 등록, 인증서 생성이 필요합니다. 등. 다운로드 패키지는 여기/blog/downLoad/fileid/8532.html에서 제공됩니다.

export C_INCLUDE_PATH=/usr/include/mysql

export PATH=/usr/bin:$PATH< / p>

export LD_LIBRARY_PATH=/usr/lib/mysql

cd /tmp/tpcc/src

make

그러면 / tmp/ tpcc-mysql에서 tpcc 명령줄 도구 tpcc_load 및 tpcc_start 생성

기능: mysql 데이터베이스의 전체 성능 테스트

장점: tpcc 표준을 준수하고, 표준 방법을 가지며, 실제 거래 활동을 시뮬레이션하면 결과가 상대적으로 신뢰할 수 있습니다.

단점: 일부 쿼리 기반 또는 쓰기 전용 애플리케이션의 경우 읽기 또는 쓰기 성능을 별도로 테스트할 수 없습니다.

사용법:

데이터 로드

데이터베이스 생성

mysql>데이터베이스 tpcc10 생성;

테이블 생성:

shell>mysql tpcc10 < create_table.sql

외래 키 추가:

shell>mysql tpcc10 < add_fkey_idx.sql

데이터 로드 :

1. 단일 프로세스 로딩:

shell>./tpcc_load 192.168.11.172 tpcc10 root pwd 300

|Host||Database||User| Password||warehouse|

2. 동시 로딩: (권장되지만 수정이 필요함)

shell>./load.sh tpcc300 300

| 데이터베이스||창고|

3. 테스트

./tpcc_start -h192.168.11.172 -d tpcc -u root -p 'pwd' -w 10 -c 10 -r 10 -l 60 -i 10 -f /mnt/hgfs/mysql/tpcc100_2013522.txt

************************ ***************

*** ###easy### TPC-C 부하 생성기 ***

*** ************************************

옵션 h의 값은 '192.168. 11.172'

값이 'tpcc'인 옵션 d

값이 'root'인 옵션 u

값이 'pwd'인 옵션 p

값이 '1'인 옵션 w

값이 '100'인 옵션 c

값이 '120'인 옵션 r

값이 '60'인 옵션 l

값이 '10'인 옵션 i

값이 '/mnt/hgfs/mysql/tpcc100_2013522.txt'인 옵션 f

<매개변수>

[서버]: 192.168.11.172

[포트]: 3306

[DB 이름]: tpcc

[사용자]: 루트

[패스]: 비밀번호

[웨어하우스]: 1

[연결]: 100

[rampup]: 120(초)

[측정]: 60(초)

램프업 시간(120초)

측정 시작.

上篇: 헤일로 무한 더블 스크린 게임 설정 下篇: 어떤 오실로스코프가 당신에게 적합합니까?
관련 내용