00:00
好的,我们来介绍一下C压车MYSQL数据库性能。那最近看到一个网友在问一个问题,每天三到4万的读写请求用什么样的配置比较好,麻烦推荐一个配置,那他用的是MYSQ的5.7的版本,那看到这个问题的话,其实感觉它应该是一个比较简单的应用场景,那我也在想那个云数据库不同的规格,它的性能又是怎么样的?那如果推荐了这个用户配置后,他后续随着时间的推移,它的业务涨了,那它又应该如何去选择其他的配置?那就这个问题我们来测试一下云MYL的性能,从测试数据上来看,如何更好的解答这个用户的问题,那我们使用的是高性能L这本书第二推荐的C这款工具,那这是一款开源多线程的基准测试工具,可以用于测试CPU、内存、磁盘、IO和数据库性能的,那目前它支持的是MYL。Oracle和post呃等常见的数据库,那它还支持这个呃。
01:06
脚本。那这块呢,我们主要来介绍两块,首先来以腾讯云麦克为例,那我测试了一下它的性能,不同实例规格间的性能,我们来看一下这份呃测试报告,那紧接着我们来看一下S工具的安装和使用。那这是我测试的一份数据,是用的MYSQ的5.7的版本,那为了简化这个场景的话,我分了三个级别,那这是我个人定义的啊,初级,中级和高级,那可以看到刚刚用户问的问题的话,初级的配置就可以满足这个用户的需求,如果他未来业务增长,那我可以根据这个表格来选择它对应的一个实力的配置。那我们看一下啊,实例规格的话啊,初级实例规格一盒1G的话,我测试的是呃,它的磁盘是25G,那我测试一张表单张表的。行数在100万,最终产生大小啊是4G,那并发数的话,我用的是128 128个进程,那它的执行时间是大概是这样的,那它的平均延时呢,是在493啊,单位是毫秒,那这几列呢,是C压测的一些主要的性能的数据,我们可以看到QPSTPS写和读。
02:23
那这里最重要的数据啊,最重要的指标呢,应该是TPS这个指标,那什么是TPS呢?那我知道下边写的注释,它是每秒的事务数,也是说一个客户机向服务器发送请求后,那服务器做出响应的过程的一个时间。那位于呃,为了大家更方便的理解的话,我这里画了一个图,那么客户机在发送啊,向云服务器发送请求的时候,那请求发送前呢,先记录一个开始时间,那服务器在接受请求以后,它肯定是有个接入机,当然它这个云的环境中可能很复杂,我这里只画了两个啊重点的环节,一个是接入服务器,一个是MYSQL,那MYSL处理完以后再返回接入服务器,再返回客户机,那这个位置就会记录它的结束时间,用结束时间去接间去开始时间,那就是TPS啊。
03:11
每秒四五数。那我可以看到一核1G的TPS达到了4219每秒,那单那每秒写的话是达到了16000,那刚刚这个用户的话,其实可以用到这个就可以了啊,也可以达到了3万左右。那这是呃,我测试的一份数据,那还有QSQS是什么呢?是每秒的查询的数据啊,当然我这里边只列了我测试每个规格的。啊一些它的实例规格是什么样子的,然后它的啊数据量级是多少,每张表,然后创建多少张表,数据量级是多少,而它对应的这个啊核心的指标,那我们可以看到随着这个实力规格的增长,它的呃TPS会不断的涨,而且它的平均延时是会不断的下降啊我们可以看到这样一个现象,那关于这个测试报告更详细的数据的话,大家可以参考这个在线表格,那这里边儿有详细的详细的。
04:11
和测试的参数,那我这里就不再单独介绍,那紧接着我们来看一下这个C的安装。那C不同的版本它的啊细节的参数其实是有一些区别的啊,我在网上找了很多这个啊文档有一些是错误的,那我这里边也来整理了一下安装过程和它的测试的方法,那这里我用的是CPA的1.1的一个版本。以下呢是它的测试参数,那如果我们要是刚购买的一个云主机的话,首先要安装get,然后要克这个远程的源码,然后并安装Switch be在执行过程中需要的一些依赖工具包,好我可以用样么去安装。那有的同学可能会问,诶,为什么不用亚M直接去安装呢?那为什么要用源码,其实源码中包含了它的一些luva脚本包啊,比较方便找,所以这里边我在演示的过程中是用的源码安装啊。
05:09
那下面是源码安装的步骤。那源码安装完以后呢,它的源码目录中呢,包含了撸R的脚本啊,撸R脚本包含这些啊,那这个关于这个lur脚本的一个内容的话,可以参考这篇文章,我看了一下还是比较细的啊,它里边的一些呃,工作原理啊,可以看到这篇文章,那不同脚本的功能是什么?这里边可以看到我已经罗列了一些脚本和它对应的文件的注释,那包含了插入测试,点查询,读测试啊,带索引更新和不带索引更新这些常见的脚本。那稍等,我们在测试的过程中,其实都会去用到。那紧接着安装完这个呃CPA以后呢,我们要找到呃这个撸瓦脚本的位置,我建议可以大家可以用find的命令去查一下,然后CPA这款工具的话,它测试分为三个步骤。呃,首先第一步是也是准备数据,然后紧接着run。
06:04
就是去啊跑数据啊,执行测试啊,去测试这个数据,再紧接着是clean up,就是清理你的测试数据,那我们可以看一下这个准备数据的命令行的参数,首先是this be,加这个录化脚本,然后加MY的远程的。IP远程的端端口,然后用户名,密码,还有它的库名,然后首次创建的时候我要啊,创建几张表,Table set代表每张表的创建的行数啊。然后thread代表我的压测的进程数,然后最后这一步呢,代表我是在prepare在准备数据,那准备完数据后,你执行完这条语句呢,它就会在创帮你创建四张表,每张表的数据大概是啊个十百千万十万十万行。然后紧接着你可以用撸R脚本去测试这10万行数据的一个基本的性能,那关于这个参数的话,我以下已经罗列了最常用的一些参数,好,这里边特别提一下,有一杠杠time,它代表限制这个啊执行的测试间的时长,那它单位是秒,比如说我要执行60秒来跑这份数据。
07:17
那以下呢,是我的一个啊生成的测试报告。我们可以看一下,那这是这个测试报告呢,是在第二步测试数据后产生的一个测试报告,它包含了一些刚刚我们看到一些常用的指标,包含了读。Read write,写好other other,这里面就包含了select insert update delete和一些等操作。那总操作数达到这些。那还有一些关键的指标是TPS啊,这行代表TPS每秒执行的TPS4219啊,这是代表QPS每秒的读写次数,那在大大概在八万多。那除此之外呢,我们还要看一下let c就是延延迟时间,这里包含了最小的一个延迟时间和最大的延迟时间和平均的延迟时间,那这里我们通常会去采用啊这一行就是95%以上的平均耗时在多少,那是在493毫秒,就是95%以上的请求都在耗时都在493毫秒,那这是这个测试报告的一些啊。
08:27
核心的数据。OK。那我们再来切换到一台服务器,那当前的这台服务器呢,我已经源码按照刚刚的步骤源码编译好了luva角啊,源码编译好了,This,那我们这里来找一下lur脚本的位置。那录化脚本呢,在C这个源码包的。SRG目录。有一个啊。我们可以看到。这个。
09:00
讲义中包含了这个脚本,它的位置就是在这里。源码包的C下的src目录下的鲁瓦啊,我们可以在执行的过程中去调用这个脚本。OK,那这节课就是这样,如果你喜欢这个视频,也欢迎你点击关注加评论,好,谢谢。
我来说两句