>  기사  >  데이터 베이스  >  MySQL 스트레스 테스트 도구 mysqlslap_MySQL 소개 및 사용

MySQL 스트레스 테스트 도구 mysqlslap_MySQL 소개 및 사용

WBOY
WBOY원래의
2016-10-09 08:33:411338검색

1. Mysqlslap 소개

Mysqlslap은 MySQL5.1과 함께 제공되는 벤치마킹 도구입니다. 이는 Apache Bench 로드 생성 도구와 유사하며, 스키마를 생성하고, 벤치마크를 실행하고, 데이터를 쿼리합니다. . 이 도구는 동시에 서버에 쿼리 업데이트를 실행하는 여러 클라이언트를 시뮬레이션하고 성능 테스트 데이터를 제공하며 여러 엔진의 성능 비교를 제공합니다. mysqlslap은 MySQL 성능 최적화 전후에 대한 직관적인 검증 기반을 제공합니다. 저자는 시스템 운영 및 유지 관리 담당자가 온라인 시스템이 지원할 수 있는 사용자 트래픽의 상한을 보다 정확하게 파악할 수 있도록 몇 가지 일반적인 스트레스 테스트 도구를 숙지해야 한다고 권장합니다. 그리고 압력 저항 및 기타 문제.

2. 매개변수 소개

--auto-generate-sql  -a           自动生成MySQL测试语句
--auto-generate-sql-add-autoincrement     添加AUTO_INCREMENT字段
--auto-generate-sql-execute-number=#     查询的个数
--auto-generate-sql-guid-primary       添加GUID字段
--auto-generate-sql-load-type=name      mixed:混合、update:更新、write:写入、key:读主键、read:查询
--auto-generate-sql-secondary-indexes=#    设置索引字段个数
--auto-generate-sql-unique-query-number=#   生成N条不同的query sql语句
--auto-generate-sql-unique-write-number=#   生成N条不同的write sql语句
--auto-generate-sql-write-number=#      每个线程write sql语句数量
--commit=#                     设置每多少条sql语句提交一次
--compress  -C                 启用压缩协议
--concurrency=#  -c              客户端数量(并发量)
--create=name                   测试的SQL语句或文件
--create-schema=name               测试的数据名
--csv=name                  生产CSV格式数据文件
--debug  -#                  写调试日志(windows不可用) 如:mysqlslap -a -#"d:t:o,c:/debug.txt"
--debug-check                   测试后打印调试信息(windows不可用)
--debug-info  -T              打印内存和CPU的相关信息
--default-auth=plugin             验证插件
--delimiter=str  -F             语句分隔符默认是 ;
--detach=#                  执行N条语句后断开重连
--enable-cleartext-plugin           启用明文身份验证插件
--engine=engine_name  -e          测试引擎 如:mysqlslap -e"myisam"或-e"myisam,innodb"
--help                    帮助信息
--host=host_name  -h            数据库host
--iterations=#  -i             重复运行的次数
--login-path=name               登陆配置文件
--no-drop                   测试后不删除schema
--number-char-cols=#  -x          设置VARCHAR类型字段数量
--number-int-cols=#  -y           设置INT类型字段数量
--number-of-queries=#             每个客户端运行sql语句数量
--only-print                 仅显示将被运行的SQL语句--delimiter选项影响
--password=password  -p           数据库密码
--pipe                    启用管道
--plugin-dir=path               插件目录
--port=port_num  -P             数据库端口
--post-query=value              测试后执行的SQL语句
--post-system=str               测试后执行的系统语句
--pre-query=value               测试前执行的SQL语句
--pre-system=str               测试前执行的系统语句
--protocol=type                链接协议 tcp, socket, pipe
--query=value  -q              测试的SQL语句 如:mysqlslap --query="SELECT * FROM t1"
--secure-auth                 不要发送密码到服务器
--silent  -s                不显示测试(静音测试)
--socket=path  -S              连接服务器的socket
--ssl-ca=file_name     
--ssl-capath=dir_name     
--ssl-cert=file_name     
--ssl-cipher=cipher_list     
--ssl-crl=file_name     
--ssl-crlpath=dir_name     
--ssl-key=file_name     
--ssl-verify-server-cert     
--user=user_name  -u            数据库用户名
--verbose  -v                输出更多的信息
--version  -V                版本信息

3. 간단한 예

1. 100,000개의 SQL 문을 각각 100, 200, 400번 동시 실행하여 테스트합니다.

mysqlslap -uroot -proot -h192.168.10.43 -P3306 --create-schema=chenmh --delimiter=";" --query="call pro_auto_select_pri" --concurrency=100,200,400 --number-of-queries=100000 

참고: 보고서 출력 시간은 주로 –number-of-queries로 지정된 쿼리를 실행하는 데 걸리는 시간에 반영됩니다. 여기서는 100,000개 호출의 동시 실행 100개, 동시 실행 400개입니다. 시간. 기본적으로 -iterations는 지정되지 않습니다. 즉, 작업이 반복적으로 실행됩니다. N이 반복적으로 실행되면 출력 시간에도 단일 루프에 소요된 시간이 반영됩니다.

2. CSV 생성

mysqlslap -a -e"myisam,innodb" --csv="c:/a.csv"

4. 요약

Mysqlslap은 주로 데이터베이스 성능 테스트용으로 자동 테스트 기능이 제한되어 있고, 생산 보고서의 상세도가 부족하므로 벤치마크 테스트에는 sysbench를 사용하는 것이 좋습니다. 이상은 mysqlslap에 대한 전체 소개입니다. 모든 분들의 공부나 업무에 도움이 되었으면 좋겠습니다. 궁금한 점이 있으시면 메시지를 남겨주세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.