侧边栏壁纸
博主头像
故黎

陈雯是小猪

  • 累计撰写 29 篇文章
  • 累计创建 5 个标签
  • 累计收到 7 条评论
标签搜索

TiDB基准测试(Sysbench)

故黎
2021-07-05 / 4 评论 / 24 点赞 / 2,369 阅读 / 1,995 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-11-16,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

由于公司数据量不断增长,考虑shardingjdbc等分库分表工具扩容的复杂性,联表查询难等问题,决定尝试分布式数据库TiDB社区版。记录一下使用Sysbench对TiDB进行基准测试的过程,安装过程不再赘述,官方提供的Tiup工具可以非常方便快捷的运维TiDB集群。本文重点记录特定环境下使用Sysbench对Tidb的测试结果。

环境

系统:Centos 7.3

硬件:8C 64G 1.6T NVME固态硬盘 2TSAS硬盘 内网带宽 8Gbps 共5台

集群拓扑:

  • pd与tikv节点data目录为各自机器的固态硬盘

  • 其他节点均为SAS硬盘
    image.png

测试过程

  • 找一台强一点的机器安装Sysbench,参考度娘或Google

  • 使用SysBench导入测试数据

    • 导入数据前根据官方文档进行前期准备工作,包括TiDB的参数调整调优等工作
    • 执行脚本导入数据
      	sysbench --mysql-host=172.16.0.10 --mysql-port=4000 --mysql-user=root --mysql-password=jianghulu521 --time=600 --threads=16 --report-interval=10 --db-driver=mysql oltp_point_select --tables=32 --table-size=10000000 prepare
      
    • 16线程向sbtest库插入32张表每张表10000000数据下的集群状态,可以看到QPS平均值可以维持在2.1K左右,3台Tikv的nvme固态使用率维持在百分之30左右,但是cpu基本处于爆炸状态使用率百分之90+,看来如官方所说,不推荐16核以下机器做tikv节点,但是没办法目前只有8核。估计cpu增强之后,插入的性能会更进一步。
      image.png
  • Point select 测试

    • 脚本

      	sysbench --mysql-host=172.16.0.10 --mysql-port=4000 --mysql-user=root --mysql-password=jianghulu521 --time=600 --threads=64 --report-interval=10 --db-driver=mysql oltp_point_select --tables=32 --table-size=10000000 run
      
    • 点查询测试结果(图片为部分结果)

      image.png

      线程数QPSTPS平均响应时间(ms)95%响应时间(ms)
      1637703377030.420.74
      3246374463740.691.44
      6449635496351.293.02
      12851459514592.495.99
      25653473534734.7811.45
      51253633536339.5422.28
  • Update index 测试

    • 脚本

      	sysbench --mysql-host=172.16.0.10 --mysql-port=4000 --mysql-user=root --mysql-password=jianghulu521 --time=60 --threads=512 --report-interval=10 --db-driver=mysql oltp_update_index --tables=32 --table-size=10000000 run
      
    • update index 测试结果(图片为部分测试结果)
      update index 128线程

      线程数QPSTPS平均响应时间(ms)95%响应时间(ms)
      32667566754.7910.65
      64832383237.6916.12
      1289577957713.3628.67
      256105081050824.3552.89
      512115481154844.2999.33
  • Read only 测试

    • 脚本

      	sysbench --mysql-host=172.16.0.10 --mysql-port=4000 --mysql-user=root --mysql-password=jianghulu521 --time=60 --threads=32 --report-interval=10 --db-driver=mysql oltp_read_only --tables=32 --table-size=10000000 run
      
    • read only 事物只读测试结果(图片为部分测试结果)
      image.png

      线程数QPSTPS平均响应时间(ms)95%响应时间(ms)
      1618499115613.8321.5
      3219872124225.7541.10
      6419990124951.2082.96
      128200051250102.30167.44
      256200671254203.79331.91

总结

以上即是SysBench对Tidb的基准测试结果,不难看出同等配置下,并发度、QPS/TPS、响应时间之间的关系,高负载下通过观察系统各组件状态判断性能瓶颈等,总的来说,Tidb是一款非常强大的分布式数据库。

0

评论区