Sysbench Mysql 에 대한 기준 테스트 프로 세 스 분석

머리말
1.기준 테스트(benchmarking)는 성능 테스트 의 한 유형 으로 테스트 대상 의 일부 성능 기준 에 대해 정량 적 이 고 재현 가능 하 며 대비 가능 한 테스트 를 강조 한다.
더 나 아가 기준 테스트 는 어느 때 기준 테스트 를 통 해 이미 알 고 있 는 성능 수준(기준 선 이 라 고 함)을 구축 하고 시스템 의 소프트 하드웨어 환경 이 변화 한 후에 다시 한 번 기준 테스트 를 실시 하여 이러한 변화 가 성능 에 미 치 는 영향 을 확인 하 는 것 도 기준 테스트 에서 가장 흔히 볼 수 있 는 용도 이다.다른 용 도 는 특정한 부하 수준 에서 의 성능 한계 측정,관리 시스템 이나 환경의 변화,성능 문 제 를 초래 할 수 있 는 조건 발견 등 을 포함한다.
2.기준 테스트 의 역할:
대부분의 웹 응용 에 있어 시스템 의 병목 은 데이터베이스 에서 쉽게 발생 한다.그 이 유 는 간단 하 다.웹 응용 중의 다른 요소,예 를 들 어 네트워크 대역 폭,부하 균형 노드,응용 서버(CPU,메모리,하 드 디스크 등,연결 수 등 포함),캐 시 는 모두 수평 확장(속칭 기계 추가)을 통 해 성능 을 향상 시 키 기 쉽다.한편,데이터베이스 예 를 들 어 MySQL 은 데이터 의 일치 성에 대한 요구 로 인해 기 계 를 증가 시 켜 데이터베이스 에 데 이 터 를 쓰 는 데 가 져 오 는 압력 을 분산 시 킬 수 없다.사전 캐 시(Redis 등),읽 기와 쓰기 분리,라 이브 러 리 분 표를 통 해 스트레스 를 줄 일 수 있 지만 시스템 의 다른 구성 요소 의 수준 확장 에 비해 너무 많은 제한 을 받 았 다.
한편,데이터 베이스 에 대한 기준 테스트 의 역할 은 현재 의 설정 에서(하드웨어 설정,OS,데이터 베이스 설정 등 포함)데이터 뱅 크 의 성능 표현 을 분석 하여 데이터 뱅 크 의 성능 한도 값 을 찾 아 실제 시스템 의 요구 에 따라 설정 을 조정 하 는 것 이다.이 밖 에 데이터베이스 서버 에 대해 기준 테스트 를 실시 하 는 것 도 데이터베이스 구조 가 수정 되 기 전과 수정 되면 그 성능 이 어떤 영향 을 받 는 지 관찰 하 는 데 사용 된다.
3.기준 테스트 와 압력 테스트 의 차이 점:
기준 테스트 와 압력 테스트 는 실제 사용 과정 에서 헷 갈 리 기 쉬 운 경우 가 많다.기준 테스트 는 시스템 에 대한 압력 테스트 로 이해 할 수 있다.그러나 기준 테스트 는 업무 논리 에 관심 이 없고 더욱 간단 하고 직접적 이 며 테스트 하기 쉬 우 며 데 이 터 는 도구 에 의 해 생 성 될 수 있 으 며 진실 을 추구 하지 않 는 다.스트레스 테스트 는 일반적으로 업무 논리(예 를 들 어 카 트 업무)를 고려 하여 진실 한 데 이 터 를 요구한다.
4.기준 테스트 도구:
SysBench 는 모듈 화 된 크로스 플랫폼,다 중 스 레 드 기준 테스트 도구 로 주로 각종 시스템 매개 변수 에서 의 데이터 베이스 부하 상황 을 평가 하 는 데 사용 된다.그것 은 주로 다음 과 같은 몇 가지 방식 의 테스트 를 포함한다.
1.cpu 성능
2.디스크 io 성능
3.스케줄 러 성능
4.메모리 할당 및 전송 속도
5.POSIX 스 레 드 성능
6.데이터베이스 성능(OLTP 기준 테스트)
현재 sysbench 는 MySQL,pgsql,oracle 세 가지 데이터 베 이 스 를 지원 합 니 다.
설치 하 다.
yum -y install sysbench
sysbench--help\##설치 성공 여 부 를 확인 합 니 다.
우정 알림:설치 에 의존 가방 이 부족 하면 볼 수 있 습 니 다여기,이곳

데이터 준비
준비 하 다.
create database sysbench_test;
show databases; #데이터베이스 검사
종료\#종료

2.시작
find/name oltp*.lua\#sysbench 가 가지 고 있 는 데 이 터 를 찾 아 스 크 립 트 에 기록 하 는 경 로 를 찾 습 니 다.다음 명령 을 실행 하려 면 사용 해 야 합 니 다.

sysbench /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=100 --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test prepare
#/usr/share/sysbench/oltp_read_write.lua:위 에서 조회 한 sysbench 스 크 립 트 를 읽 고 쓰 는 경로
\#-tables:생 성 표 의 수량 을 지정 합 니 다.여기에 5 장의 표를 설정 하여 5 장의 테스트 표를 생 성 하 는 것 을 나타 내 고 독 자 는 실제 수요 에 따라 이 값 을 조정 할 수 있 습 니 다.
#--table_size:생 성 표 에서 생 성 된 데 이 터 량 을 지정 합 니 다.상기 예 는 표 마다 100 개의 테스트 데 이 터 를 생 성 하 는 것 을 나타 내 고 실제 수요 에 따라 인용 치 를 조정 할 수 있 습 니 다.예 를 들 어 1000000,즉 백만 개의 테스트 데 이 터 를 생 성 하 는 것 을 의미 합 니 다.
\#--my sql-db:연 결 된 테스트 데이터베이스 이름 입 니 다.위 에 만 든 데이터 베 이 스 를 사용 하여 테스트 합 니 다.
\#--mysql-user:연 결 된 데이터베이스 사용자 이름
\#--mysql-password:연 결 된 데이터베이스 비밀번호
\#--mysql-port:연 결 된 데이터베이스 개발 포트
실행 알림 오류

원인:
가 져 온 데이터 가 데이터베이스 기본 값 을 초과 합 니 다.
해결:
my sql 이 설 치 된 서버 에서 데이터 설정 을 수정 해 야 합 니 다.
vim /etc/my.cnf
수정 maxallowed_packet 의 값 이 없 으 면 맨 뒤에 한 줄 을 추가 합 니 다.

다시 실행 성공,my sql 고객 센터 에서 데 이 터 를 검사 합 니 다.


테스트 실행
sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test --tables=5 --table_size=100 --threads=10 --time=30 --report-interval=3 run
\#--threads:스 레 드 수 표시
\#--time:실행 시간 표시
\#--report-interval:몇 초 간격 으로 테스트 정 보 를 출력 하 는 지 표시 합 니 다.
\#run:실행 을 표시 합 니 다.다른 매개 변수 정보 가 위 와 일치 하면 설명 하지 않 습 니 다.
상기 명령 은 10 개의 병렬 스 레 드 수 를 사용 하고 실행 시간 은 30 초 이 며 3 초 마다 테스트 정 보 를 출력 한 다 는 것 을 나타 낸다.

그 중에서 우리 에 게 비교적 중요 한 정 보 는 다음 과 같다.
쿼 리:조회 총수 및 qpstransactions:사무 총수 및 tps
  • Latency-95th percentile:상위 95%의 요청 에 대한 응답 시간
  • 정리 데이터
    테스트 가 끝 난 후에 마지막 마무리 작업 을 잊 지 마 세 요.대량의 테스트 데 이 터 는 데이터 베이스 에 영향 을 미 칩 니 다.
    sysbench /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=100 --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test cleanup
    \#여기 있 는 매개 변 수 는 이전에 데 이 터 를 삽입 한 매개 변수 에 따라 작성 하여 모두 깨끗이 제거 하도록 합 니 다.

    검사 데이터

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기