zoukankan      html  css  js  c++  java
  • mysql性能测试--sysbench实践

    Sysbench

     
    • 业界较为出名的性能测试工具
    • 可以测试磁盘,CPU,数据库
    • 支持多种数据库:oracle,DB2,MYSQL
    • 需要自己下载编译安装
    • 建议版本:sysbench0.5
     
    sysbench,不仅用来测试数据库的性能,也可以测试运行数据库的服务器的性能。
     
    强烈建议熟悉sysbench测试,在mysql用户的工具包中,这应该是最有用的工具之一。
     
    • sysbench 的cpu基准测试
    • sysbench 的文件I/O基准测试
    • sysbench 的OLTP基准测试
     
    sysbench 其他的基准测试,但和数据库性能没有直接关系。
    • 内存-----测试内存的连续读写性能
    • 线程-----测试线程调度器的性能。
    • 互斥锁---测试互斥锁性能。
    • 顺序写---测试顺序写的性能。
     
    问题:
    • 表结构单一
    • 没有相关约束和索引
    • 测试的SQL语句相对简单
     
     
    使用方法

     
    1.下载sysbench
     
    git clone https://github.com/akopytov/sysbench
     
    目录结构
    root@itcast01:/home/aiapple/sysbench# ls
    autogen.sh  configure.ac  install-sh   missing        README-WIN.txt
    ChangeLog   COPYING       m4           mkinstalldirs  sysbench
    config      doc           Makefile.am  README.md      TODO
     
    2. 编译&安装
     
    ./autogen.sh
    ./configure --prefix=/home/sysbench
    make
    make install
     
     
    3. sysbench流程
    • 初始化数据(prepare)
    • 运行测试(run)
    • 清理数据(cleanup)
     
    a)初始化数据prepare:
     
    sysbench --test=parallel_prepare.lua --oltp_tables_count=1 --rand-init=on --oltp-table-size=500000000 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-requests=0 prepare
     
     
    sysbench表结构
     
    b)运行测试--run
     
    sysbench --test=oltp.lua --oltp_tables_count=1 --num-threads=100 --oltp-table-size=500000000 --oltp-read-only=off --report-interval=10 --rand-type=uniform --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-time=1000 --max-requests=0 run
    特殊情况
    • 写入测试(纯insert情况)
     
    数据解读
    运行数据
    [10s]--------------运行时间点
    Threads:100------100个线程数
    tps:378.90---------每秒执行378.9个事务
    reads:-------------读请求数
    writes:------------写请求数
    response time:--响应时间
    errors:-------------错误个数
    reconnects:-------重新连接个数
     
    数据汇总
    关注
    • 响应时间
    • tps
    c)清理数据(cleanup)
    • 手动drop表和database
    • 使用sysbench提供的cleanup命令
     
    使用sysbench清理数据
    sysbench --test=parallel_prepare.lua --oltp_tables_count=1 --rand-init=on --oltp-table-size=500000000 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sys --mysql-password=netease --mysql-db=sbtest --max-requests=0 cleanup
     
     
  • 相关阅读:
    mysql读写分离
    redis和memcached的区别(总结)
    MySQL常见面试题
    mysql查询优化
    mysql中enum类型
    ySQL性能优化的21个最佳实践 和 mysql使用索引
    如何选择mysql存储引擎
    Windows10右键添加"在此处打开命令窗口"
    centos7下安全访问远程服务器
    常用http/https以及socks5代理总结
  • 原文地址:https://www.cnblogs.com/Aiapple/p/5705415.html
Copyright © 2011-2022 走看看