Mysql基准测试

简介:基准测试(benchmark)是针对系统设计的一种压力测试,通常为了掌握系统的行为,或重现某个系统状态,或做新硬件的可靠性测试
测试工具:sysbench

为什么要基准测试

基准测试时唯一方便有效的、可以学习系统在给定的工作负载下会发生什么的方法。基准测试可以在系统实际负载之外创造一些虚构的场景进行测试

  • 验证基于系统的假设,确定假设是否符合实际情况
  • 重现系统中的某些异常行为,以解决这些异常
  • 测试系统当前的运行情况
  • 模拟比当前系统更高的负载
  • 规划未来业务的增长
  • 测试应用适应可变华景的能力
  • 测试不同的硬件、软件和操作系统的配置
  • 证明新采购的设备是否配置正确
  • 应用创建单元测试套件

基准测试策略

有两种主要的策略:1.针对整个系统的整体测试(集成式(full-stack));2.单独测试Mysql(单租件式(single-component))

集成式:

  • 测试整个应用系统,包括web服务器,应用代码整体性能等
  • Mysql并非总是应用的瓶颈
  • 只有针对整体测试,才能发现各部分之间的缓存带来的影响
  • 整体应用的测试能更真实的揭露系统的表示

单组件式:

  • 需要比较不同的schema或查询的性能
  • 针对应用的某个问题的测试
  • 避免漫长的基准测试

测试指标

吞吐量

吞吐量指的是单位时间内的事物处理数量,经典的数据库应用测试指标,测试单位 每秒事物数(TPS) 每分事物数(TPM)

响应时间或延迟

这个指标测试任务所需的整体时间,通畅使用百分比时间来替代最大响应时间。测试结果使用图表表示更容易理解

并发性

应该测试在任意时间有多少同时发生的并发请求,而非在线数

可扩展性

可扩展性帮助发现当前系统的瓶颈

指标测试应当遵循实际业务情况,而非只关心某几种指标的性能

基准测试方法

1设计和规划基准测试

a.标准的基准测试 b.设计专业的测试

  • 测试时应当详细的写下测试规划,记录测试数据、系统配置的步骤,如何测量和分析结果,以及预热的方案等。
  • 建立将参数和结果文档化的规范,每一轮测试都必须进行详细记录

2获取系统的性能和状态

执行基准测试时需要尽可能多收集被测试系统的信息。最好为基准测试建立一个目录,并且没执行一轮测试都创建单独的子目录,将测试结果、配置文件、测试指标、脚本和其他相关说明多保存在其中。

  • 可以采取脚本方式定时获取系统状态并记录

基准测试工具

集成式测试工具

ab

ab是Apache HTTP服务器基准测试工具,可以测试http服务器每秒多少请求,只能针对单个URL进行尽可能快的压力测试

http_load

和ab类似,比ab灵活,可以通过一个输入文件提供多个url,load在这些url中随机算则进行测试,也可以定制http_load,使其按照时间比率进行测试

参数 含义
-parallel 简写-p 含义是并发的用户进程数。
-fetches 简写-f 含义是总计的访问次数
-rate 简写-p 含义是每秒的访问频率
-seconds简写-s 含义是总计的访问时间

举个栗子:http_load -p 20 -s 10 urls.txt
返回结果:
500 fetches, 20 max parallel, 92500 bytes, in 10 seconds
185 mean bytes/connection
50 fetches/sec, 9250 bytes/sec
msecs/connect: 193.104 mean, 233.949 max, 184.651 min
msecs/first-response: 194.718 mean, 211.365 max, 186.773 min HTTP response codes:
code 200 -- 49

结果说明

1.500 fetches, 20 max parallel, 92500 bytes, in 10 seconds
说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是92500 bytes,运行的时间是10.0148秒
2.185 mean bytes/connection
说明每一连接平均传输的数据量92500/500=185
3.50 fetches/sec, 9250 bytes/sec
说明每秒的响应请求为50,每秒传递的数据为9250 bytes/sec
4.msecs/connect: 193.104 mean, 233.949 max, 184.651 min
说明每连接的平均响应时间是93.104 msecs,最大的响应时间233.949 msecs,最小的响应时间184.651 msecs
5.msecs/first-response:194.718 mean, 211.365 max, 186.773 min
6、HTTP response codes: code 200 -- 49
说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
特殊说明:这里,我们一般会关注到的指标是fetches/sec、msecs/connect
他们分别对应的常用性能指标参数
Qpt-每秒响应用户数和response time,每连接响应用户时间。

测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论

JMeter

JMeter是一个java应用程序,可以加载其他应用并测试其性能,可测试web应用,ftp服务器或JDBC数据库查询测试等。

  • 可以控制预热时间
  • 更加灵活的模拟真实用户访问
  • 拥有绘图接口
  • 能够对测试进行记录
  • 离线重演测试结果

单组件式测试工具

mysqlslap

可模拟服务器负载,并输出计时信息,在Mysql发行包中,测试时可以执行并发连接数,并制定sql语句

Mysql Benchmark Suite(sql-bench)

用于不同数据库服务器上进行比较测试,单线程,主要用于测试服务器的查询速度。结果会显示那种类型的操作在服务器上执行更快。缺陷较多

Super Smack

基于Mysql和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。可以模拟多用户访问、加载测试数据到数据库,并支持使用随机数据填充测试表,测试定义在“smack”文件中,它使用一种加单的语法定义测试的客户端、表、查询等测试要素。

Database Test Suite

偏工业标准的测试工具集

sysbench

多线程系统压测工具,它可以根据影响数据库服务器性能的各种因素来评估系统的性能。支持Mysql、操作系统和硬件的测试

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

推荐阅读更多精彩内容

  • 基准测试(benchmark)是MySQL新手和专家都需要掌握的一项基本技能。简单地说, 基准测试是针对系统设计的...
    好好学习Sun阅读 430评论 0 1
  • 一、定义: 基准测试是一种测量和评估软件性能指标的活动,用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新...
    烟雨十二楼阅读 948评论 0 2
  • 基准测试是针对系统设计的一种压力测试。通常的目标是为了掌握系统的行为。重新某个系统状态,或者是做新硬件的可靠性测试...
    pantera19阅读 237评论 0 1
  • 基准测试(benchmark),是新手和专家都必须掌握的一项基本技能,是针对系统设计的一种压力测试。 1.1 为什...
    CaesarXia阅读 1,850评论 0 1
  • 牵着是左手靠在心房 转手又一耳光 你说我不够爱你 有着情侣的暧昧 却成不了你的新娘 不断吮吸你的脚掌 面容安静又善...
    淼淼余生cm阅读 306评论 1 3