Mysql 硬盘性能测试
一般硬盘分为机械硬盘和固态硬盘,在mysql的服务器中,强烈建议使用固态硬盘,因为固态硬盘的IOPS, 主要是固态硬盘的随机读取的速度比较高。
IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。
随机读写频繁的应用,如小文件存储(图片)、OLTP数据库、邮件服务器,关注随机读写性能,IOPS是关键衡量指标。
顺序读写频繁的应用,传输大量连续数据,如电视台的视频编辑,视频点播VOD(Video On Demand),关注连续读写性能。数据吞吐量是关键衡量指标。
简单理解就是:
磁盘的 IOPS,也就是在一秒内,磁盘进行多少次 I/O 读写。
磁盘的吞吐量,也就是每秒磁盘 I/O 的流量,即磁盘写入加上读出的数据的大小。
有些硬盘的厂商有时候给的是吞吐量,也就是带宽。怎么计算IOPS
例如第一个Intel x25-E 64GB 的这个盘的iops = 1M / 4kb * 48 = 1024 / 4 * 48 = 12288
① 1M中有多少个块, 上面是以4kb为一个块,
② 48M/s 的吞吐量, 那么IO就是 1M / 4kb * 48 = 1024 / 4 * 48 = 12288
跟硬盘相关的mysql配置
innodb_flush_neighbors = 0 ##硬盘刷新比较平缓,效率高,
innodb_log_file_size = 4G ##如果硬盘比较大的话,可以设置8G
Linux查看磁盘的性能
① iostat -xm 3
avg-cpu: %user %nice %system %iowait %steal %idle1.02 0.00 1.02 0.00 0.00 97.95Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0
- rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
- wrqm/s: 每秒对该设备的写请求被合并次数
- r/s: 每秒完成的读次数
- w/s: 每秒完成的写次数
- rkB/s: 每秒读数据量(kB为单位) 读的吞吐量
- wkB/s: 每秒写数据量(kB为单位) 写的吞吐量
- avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
- avgqu-sz: 平均等待处理的IO请求队列长度
- await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
- svctm: 平均每次IO请求的处理时间(毫秒为单位)
- %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率
我们上面的IOPS = r/s + w/s 的值
② 使用 sysbench 命令测试硬盘性能
-file-num=N 创建文件的数量,默认值:128。由N个文件组成。
--file-block-size=N 每次IO操作的block大小,默认值:16K。
--file-total-size=SIZE 所有文件大小总和,默认值:2G。
--file-test-mode=STRING 测试模式:seqwr(顺序写), seqrewr(顺序读写), seqrd(顺序读), rndrd(随机读), rndwr(随机写), rndrw(随机读写)。
--file-io-mode=STRING 文件操作模式:sync(同步),async(异步),mmap(快速map映射),默认值:sync。
--file-async-backlog=N 每个线程排队的异步操作数,默认值[128]。
--file-extra-flags=[LIST,...] 使用额外的标志符来打开文件{sync,dsync,direct}。默认值空
--file-fsync-freq=N 在完成N次请求之后,执行fsync(),0表示不使用fsync,默认值:100。
--file-fsync-all[=on|off] 每次写操作后执行fsync(),默认值:off。
--file-fsync-end[=on|off] 测试结束后执行fsync(),默认值:on。
--file-fsync-mode=STRING 使用fsync或fdatasync方法进行同步,默认值:fsync。
--file-merged-requests=N 尽可能的合并N个IO请求数,0表示不合并,默认值:0。
--file-rw-ratio=N 测试时候的读写比例,默认值:1.5(即3:2)。
--max-time=300 ##最大的测试时间 300S, 如果设置5s那么5s就测试完成
--max-requests=0 ## 最大的请求,随便请求
--num-threads=128 ## 多少个线程数进行测试
--report-interval=1 ## 每秒中输出结果
A)准备4块硬盘测试
sysbench --test=fileio --file-num=4 --file-block-size=16384 --file-total-size=4G prepare
B) 刚刚申请的4块硬盘开始测试 这里测试的是 rndrd 随机读的模式
sysbench --test=fileio --file-num=4 --file-block-size=16384 --file-total-size=4G --file-test-mode=rndrd --file-extra-flags=direct --max-time=300 --max-requests=0 --file-fsync-freq=1 --num-threads=128 --report-interval=1 run
用sysbench测试的硬盘结果是吞吐量: reads: 33.45 M/s, 我们这里测试的是块是--file-block-size=16384(16kb) 那么iops = 1M / 16kb * 33.45 = 2112 (需要注意的是我们这里测试的是 16KB的块,我们一般指标是4K) 我这里测试的阿里云的服务器。
这个时候也可以看 iostat -xm 3 的数据
读的吞吐量差不多的都是32/s 33M/s
读的iopss是2089跟我们算的 2112也差不多
如果我们把上面的 --max-time=5 改成5 则跑完之后就会出来测试报告
C) 测试完成后 需要把刚刚分配的空间释放掉
sysbench --test=fileio --file-num=4 --file-block-size=16384 --file-total-size=4G cleanup
③ innodb_io_capacity 的设置
当我们用上面的工具测试出了硬盘的iops,我们就需要在mysql中设置,mysql读写硬盘的iops,
一般来说就用硬盘的 iopo / 2的值, mysql默认是200,这就是为什么有时候我们的服务器买了固态硬盘后,感觉磁盘的读写还是比较慢的原因。
这里还需要介绍一个变量innodb_flush_method = O_DIRECT
意思是说,当我们的mysql在写入磁盘的时候,不经过操作系统层的空间缓存,而是直接写入磁盘。
Mysql 硬盘性能测试相关推荐
- 使用Jmeter对mysql进行性能测试入门
使用Jmeter对mysql进行性能测试入门 第一步:测试环境准备: 1).mysql> select version(); +-----------+ | version() | +----- ...
- 测试m.2固态的软件,Ryzen新平台下M.2固态硬盘性能测试
原标题:Ryzen新平台下M.2固态硬盘性能测试 自AMD Ryzen处理器上市后,针对它的各种性能测试内容层出不穷.大家一开始对它的CPU性能感兴趣,接着蔓延到首次支持DDR4的内存性能纠结了很久, ...
- Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案 参考文章: (1)Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案 (2)https://www.cnblogs. ...
- as ssd测试软件得分分析,固态硬盘性能测试软件AS SSD benchmark详解
固态硬盘性能测试软件AS SSD benchmark详解? 能够带来极速开关机体验,另外电脑也要更为顺畅不少,不过,如果要看固态硬盘的性能,一般大家还需要用到AS SSD工具检查固态硬盘读取速度.是不 ...
- mac linux 性能测试工具下载,8款SSD固态硬盘性能测试软件,适用于Windows、Linux、MacOS、安卓系统等不同操作系统的...
虽然各存储厂商对SSD的读写参数都有说明,但通常是不太准确的.唯一值得相信的就是自己测试,用自己的真实环境得到真正的数据. 警告 - 请不要不必要地重复读/写测试你的SSD固态盘,重复读/写测试可能会 ...
- CENTOS 7 踢用户_CentOS服务器及MySQL数据库性能测试-乐搏软件测试
这期小编和大家分享使用Sysbench,进行CentOS服务器及MySQL数据库的性能测试. Sysbench是一个跨平台的基准测试工具. 基准测试是对数据库的性能指标进行定量的.可复现的.可对比的测 ...
- [杂记] 新年物语关于Mysql引擎性能测试
顺便看到一个Mysql的测试文章,感觉还满有参考价值的,于是记录下来以便参考. 以下是一个MySQL中MyISAM引擎与InnoDB引擎性能简单性能测试: [硬件配置] CPU : AMD2500+ ...
- SSD硬盘性能测试比较
由于公司最近需要上SSD,用于 MySQL 数据库服务器,以下针对单块480G SSD.接RAID卡240G SSD* 2 RAID0,以及与普通硬盘SATA硬盘以及SAS(raid10)做个比较: ...
- mysql 硬盘写入速度_MySQL存储写入速度慢分析
原标题:MySQL存储写入速度慢分析 一.存储结构分析 MySQL存储结构图: 解析: 1.读操作:内存读-->cache缓存读-->磁盘物理读 读取到的数据会按上述顺序往回送. 2.写操 ...
最新文章
- Javascript 检查一组 radio 中的哪一个被勾选
- mysql 随机选择数据_从MySQL随机选取数据
- 使用C语言和i2c-dev驱动
- 给大家提炼几个产品经理的核心点
- linux命令行总结
- HDU 2242 考研路茫茫——空调教室
- UVa 12169 - Disgruntled Judge(拓展欧几里德)
- Sqoop 数据增量导出,--update-key添加多个字段
- php对象数字属性,PHP获取对象的纯数字属性
- 操作系统课程设计 Kernel编译和WinDbg启动 批处理文件
- vue 下载插件downloadjs
- 英语学习之‘加减乘除’
- MYSQL Error:You must SET PASSWORD before execut...
- DDD(领域驱动设计)系列主题:基础概念对象介绍(实体,值对象,仓储等)
- 2022年全球与中国磁阻随机存储器(MRAM)市场现状及未来发展趋势
- hello ,酷狗音乐产品体验报告
- html基础之块元素、行内元素、行内块元素
- Mac下如何输入全角空格
- 【读书笔记->统计学】04-01 利用概率理论预测和决策-概率与事件、维恩图、互斥与相交事件、交集与并集概念简介
- 浏览器自动重复执行任务 iMacros
热门文章
- keep-alive 的应用
- 好客租房移动web项目(2)
- 【无标题】2023第十五届上海国际智慧城市、物联网、大数据博览会
- [初学笔记]matlab的具体类型图形命令函, bar条形图
- php 错误32767,Mymps error: Duplicate entry '32767' for key 'PRIMARY'报错怎么办
- 推荐系统- 评分预测问题
- 在Adobe Reader里添加书签功能
- 亚马逊云科技Amazon CodePipeline上线
- 【ppt入门教程】如何让ppt与Excel工作表结合 实现数据的录入与计算
- 最有效的大脑休息方法