Sysbench测试云MySQL性能

#云计算-产品体验优化私房菜课程(腾讯云篇)#

最近看到一个网友在问(请问一下,每天3~4W次的读写,用什么样子的配置比较好,麻烦推荐一个配置,谢谢 MySQL5.7的.)看着应该是一个比较简单的场景,不过笔者通过这问题在想云MySQL不同的配置他的性能究竟如何?如果推荐了这个用户配置后,他的业务又涨了该如何再选择其他的配置? 所以这里我们可以来测试一下云MySQL的性能,从测试数据上看是否可以更好的解答此用户的问题。


本文内容提供了B站视频:https://www.bilibili.com/video/BV1vt4y1U71S


我们使用《高性能MySQL》第二章推荐的工具sysbench(http://sysbench.sourceforge.net)这是一款开源的多线程系统基准测试工具,可以用于测试CPU、内存、磁盘I/O线程和数据库的性能,目前数据库支持MySQL、Oracle和PostgreSQL等常见的数据库。

本文主要介绍以下两个话题:

1.腾讯云MySQL性能测试结果

2.sysbench安装与使用介绍

腾讯云MySQL性能测试结果

以下笔者测试了腾讯云MySQL5.7版本的不同配置服务器对应的指标。为了简化介绍用户场景这里笔者将不同的规格分为三个等级分别为初级、中级和高级(笔者个人的定义),可以看到初级的配置基本可以满足网友的需求,如果用户后续业务增长也可以按照以下做参考。

腾讯云-云MySQL性能数据

数据库最有价值的指标TPS,什么是TPS如下。

TPS(Transactions Per Second)每秒事务数。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。


TPS计算方式

QPS(Queries Per Second)每秒查询。是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器(比如是读写分离的架构,就是读的服务器)在规定时间内所处理流量多少的衡量标准。

以上测试过程中的参数见在线表格,表格在不断更新完善中。(数据库性能测试(腾讯云 ))https://docs.qq.com/sheet/DTmNWZWdzdFJJWERR?tab=nw95wo&c=O10A0C0

sysbench安装与使用介绍

我们继续来看一下sysbench如何安装,sysbench不同的版本一些细节参数是有一些区别的,这里我们使用的是sysbench 1.1.0-bd4b418版本以下为安装步骤:

#  yum -y install  git

# git clone https://github.com/akopytov/sysbench.git

# yum -y install make automake libtool pkgconfig libaio-devel

# yum -y install mariadb-devel

# ./autogen.sh

# ./configure

# make -j

# make install

源码目录中提供了lua脚本,各脚本功能如下,关于lua脚本内容介绍见(https://blog.csdn.net/L835311324/article/details/98618821)

测试方法

sysbench 测试分为三步,分别(prepare -> run -> cleanup):

1.准备数据 (prepare)

sysbench ./oltp_read_write.lua --mysql-host= --mysql-port=3306  --mysql-user=root --mysql-password='密码'  --mysql-db=test  --tables=4 --table-size=100000  --threads=128  prepare

2.测试数据(run)

sysbench ./oltp_read_write.lua --mysql-host=IP --mysql-port=  --mysql-user=root --mysql-password='密码'  --mysql-db=test  --tables=4 --table-size=100000  --threads=128 --report-interval=3  --time=60 run

3.清理测试数据(cleanup)

sysbench  ./oltp_read_write.lua --mysql-host=IP--mysql-port=3306  --mysql-user=root --mysql-password='密码'  --mysql-db=test --tables=4 --table-size=100000  --threads=128  cleanup

参数介绍:

--mysql-host=  MySQL服务器IP

--mysql-port=  端口

--mysql-user= 账户名

--mysql-password= 密码

--mysql-db= 数据库名

--tables=表数

--table-size= 表行数

--threads= 进程数

--time = 限制测试时长(秒)


以下是测试数据后的结果


Initializing worker threads...

Threads started!

[ 3s ] thds: 128 tps: 369.44 qps: 7947.23 (r/w/o: 5629.62/1538.08/779.53) lat (ms,95%): 502.20 err/s: 0.00 reconn/s: 0.00

[ 6s ] thds: 128 tps: 414.71 qps: 8288.14 (r/w/o: 5823.90/1633.49/830.75) lat (ms,95%): 590.56 err/s: 0.33 reconn/s: 0.00

[ 9s ] thds: 128 tps: 451.33 qps: 9002.31 (r/w/o: 6300.32/1798.33/903.66) lat (ms,95%): 404.61 err/s: 0.67 reconn/s: 0.00

SQL statistics:

    queries performed:

        read:                            59108        # 读

        write:                          16879        # 写

        other:                          8441          #其他操作总数(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)

        total:                          84428 .        #全部总数

    transactions:                        4219  (414.71 per sec.) .        #  tps 总事务数(每秒事务数)

    queries:                            84428  (8299.00 per sec.) .      # QPS(每秒读写次数)

    ignored errors:                      3      (0.29 per sec.)

    reconnects:                          0      (0.00 per sec.)

Throughput:

    events/s (eps):                      414.7143

    time elapsed:                        10.1733s

    total number of events:              4219

Latency (ms):

        min:                                  36.82

        avg:                                  305.95

        max:                                  809.03

        95th percentile:                      493.24 .      # 超过95%平均耗时

        sum:                              1290817.07

Threads fairness:

    events (avg/stddev):          32.9609/2.49

    execution time (avg/stddev):  10.0845/0.03


End...

更多参考

1. sysbench参数和一些测试案例 https://blog.csdn.net/weixin_44218035/article/details/89424166

2. 什么是TPS,什么是QPS 他们区别是什么 。https://www.cnblogs.com/uncleyong/p/11059556.html

3. 《高性能MySQL》第二章

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容