IOPS介绍基础概念

1、IOPS是什么?

IOPS(Input/Output Operations Per Second)是一个用于电脑存储设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。

量测 说明
总IOPS 每秒读写次数的总和(混合读取及写入测试)
随机读取IOPS 每秒平均的随机读取次数
随机写入IOPS 每秒平均的随机写入次数
循序读取IOPS 每秒平均的循序读取次数
循序写入IOPS 每秒平均的循序写入次数

1.1、影响硬盘性能的因素

  • 1.1.1 、寻道时间
  • 1.1.2 、旋转延迟
  • 1.1.3 、 数据传输时间

1.2、衡量性能的指标

1.2.1、 IOPS

IOPS(Input/Output Per
Second)即每秒的输入输出量(或读写次数),即指每秒内系统能处理的I/O请求数量。随机读写频繁的应用,如小文件存储等,关注随机读写性能,IOPS是关键衡量指标。可以推算出磁盘的IOPS = 1000ms / (Tseek +
Trotation + Transfer),如果忽略数据传输时间,理论上可以计算出随机读写最大的IOPS。

常见磁盘的随机读写最大IOPS为:

  • 7200rpm的磁盘 IOPS = 76 IOPS
  • 10000rpm的磁盘IOPS = 111 IOPS
  • 15000rpm的磁盘IOPS = 166 IOPS

1.2.2、 吞吐量

吞吐量(Throughput),指单位时间内可以成功传输的数据数量。 吞吐量是指系统在单位时间内处理请求的数量。

CentOS中测试硬盘:

yum -y install hdparm hdparm -Tt --direct/dev/sdb1 #/dev/sdb1*部分可改
  • -t 评估硬盘的读取效率。
  • -T 评估硬盘快取的读取效率。

以 阿里云服务器为例子(8C16G,云盘260GiB (9600 IOPS))

[root@izwz96bg1pf5e43r6m2zvpz fio-2.0.7]# hdparm -Tt --direct /dev/vda1/dev/vda1:
Timing O_DIRECT cached reads:   520 MB in 2.00 seconds = 259.46 MB/sec Timing O_DIRECT disk reads: 698 MB in 3.01
seconds = 232.14 MB/sec

1.2.3、使用率、饱和度、IOPS、吞吐量以及响应时间

2、怎么测试硬件和mysql中IOPS的大小?

2.1、测试linux中硬盘的IOPS

参考地址:https://help.aliyun.com/document_detail/147897.html?spm=5176.2020520101.help.dexternal.1f8f4df5Top0sA

2.1.1、FIO安装

wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz
yum -y install libaio-devel
tar -zxvf fio-2.0.7.tar.gz
cd fio-2.0.7
make && make install

2.1.2、硬盘测试读写参数 参数说明:

参数 参数说明
filename=/dev/vda1 测试文件名称,通常选择需要测试的盘的data目录
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw rw=randwread 测试随机读的I/O
rw=randwrite测试随机写的I/O
rw=randrw 测试随机混合写和读的I/O
rw=read 测试顺序读的I/O
rw=write 测试顺序写的I/O
rw=rw测试顺序混合写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30 本次的测试线程为30.
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles=8 每个进程生成文件的数量
  • 随机读测试
fio -filename=/dev/vda1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=15G
-numjobs=20 -runtime=60 -group_reporting -name=mytest

  • 顺序读:
fio -filename=/dev/vda1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30
-runtime=1000 -group_reporting -name=mytest
  • 随机写: - 崩了 size 太大了,不要直接运行
fio -filename=/dev/vda1 -direct=1 -iodepth 1
-thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
  • 顺序写:
fio -filename=/dev/vda1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30
-runtime=1000 -group_reporting -name=mytest
  • 混合随机读写:
fio -filename=/dev/vda1 -direct=1 -iodepth 1 -thread -rw=randrw
-rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest
-ioscheduler=noop

2.2、sysbench测试

  • mysql性能(TPS、QPS、IOPS)

Sysbench是一款开源的、模块化的、跨平台的多线程性能测试工具,可以执行数据库在CPU、内存、线程、IO等方面的性能测试。
详细参考:https://help.aliyun.com/document_detail/139562.html

3、IOPS主要干什么用?

关乎硬件的性能问题,就是读写性能,提升业务的并发都起到辅助作用

3.1.IOPS

IOPS:Input/Output operation Per Second, 每秒处理的IO请求次数。
我们知道I/O就是磁盘的读写能力,比如每秒读 300M,写 200M,这个即数据的吞吐量(I/O能力的另一个关键指标),但是 IOPS 指的可不是读写的数据吞吐量,IOPS 指的是每秒能够处理的 I/O 请求次数。

如果想I/O 系统响应够快,那么 IOPS 越高越好,因为IOPS 和硬件有关,所以,要提高IOPS,就目前来看基本只能拼硬件,传统方案是使用多块磁盘通过 RAID 条带后,使 I/O
读写能力获得提升,我们也可以使用固态硬盘SSD来提升IOPS,不过固态硬盘成本可能比较大。

3.2、QPS

QPS:Query Per Second,每秒请求(查询)次数。
这个参数非常重要,可以直观的反映系统的性能,这就像IOPS衡量磁盘每秒钟能接收多少次请求。 我们可以在MySQL命令行模式下执行 status
命令,返回的最后一行输出信息中就包含 QPS 指标。

3.3、TPS

TPS:Transaction Per Second,每秒事务数。 TPS参数MySQL原生没有提供,如果需要我们自己算,可以利用计算的公式:
TPS = (Com_commit + Com_rollback) / Seconds

这个公式有两个状态变量,分别代表提交次数和回滚次数,Seconds 就是我们定义的时间间隔。

3.4、RT,响应时间

响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。 响应时间RT(Response-time)
,是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。

3.5、并发数

并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。

4、IOPS在业务场景中会影响哪些?

脚本运行都会涉及,读写数据库

5、引申制约高并发的因素有哪些?

高并发性能指标:QPS、TPS、RT、吞吐量详解

6、OLTP与OLAP的介绍

数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical
Processing)。
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。

[每周一更]-(第16期): IOPS的介绍说明相关推荐

  1. [每周一更]-(第13期):灰度测试的解释说明

    我们正常开发项目,都会经历到开发测试.测试机测试然后逐步转到线上环境里测试并验收,但是这上线过程可能存在很多不确定的因素,为了保证更完善稳定的上线项目和用户的体验,有了灰度测试,作为一种过渡手段. 灰 ...

  2. 《强化学习周刊》第16期:多智能体强化学习的最新研究与应用

    No.16 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,多智能强化学习的研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领 ...

  3. 《预训练周刊》第16期:中科院推出全球首个图文音三模态预训练模型、顶会论文探索100层序列推荐模型的加速训练...

    No.16 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第16期&l ...

  4. cad刷新快捷键_第16期分享:常用电脑快捷键是哪些?

    电脑键盘快捷键的使用能很好的提高工作效率,所谓的快捷键就是使用键盘上某一个或某几个键的组合完成一条功能命令,从而达到提高操作速度的目的.善于使用快捷键能更快捷的使用电脑,那么电脑键盘快捷键有哪些呢?下 ...

  5. 华为云企业级Redis讲解第16期:超越开源Redis的ACID“真“事务

    摘要: 开源Redis只支持伪事务,应用场景受限.高斯Redis发布企业级事务特性,支持完备ACID,为交易.库存等上层业务带来全新可能. 本文分享自华为云社区<华为云企业级Redis揭秘第16 ...

  6. 【活动打卡】【Datawhale】第16期 机器学习算法梳理(AI入门体验) Task02:基于决策树的分类预测

    1.决策树的介绍和应用 1.1 决策树的介绍 决策树是一种常见的分类模型,在金融风控.医疗辅助诊断等诸多行业具有较为广泛的应用.决策树的核心思想是基于树结构对数据进行划分,这种思想是人类处理问题时的本 ...

  7. Neutrino追问AMA第16期|everiToken程希冀:通过安全合约技术让用户一键发通证

    在3月13日 Neutrino 追问 AMA 第16期交流中,我们邀请到everiToken联合创始人兼 CPO 程希冀与 Neutrino 中国社区用户进行了一场关于<如何让现实资产权益在区块 ...

  8. 即时通讯技术文集(第16期):IM架构设计技术精选(第一部分) [共17篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第16 期. [- 1 -] 浅谈IM系统的架构设计 [链接] http://www.52im. ...

  9. 微软请你学Linux,你没有听错,是Linux系列培训4月~6月,共16期,4月5日起盛情开始!微软请你!!!

    尊敬的合作伙伴,您好!       微软 Azure作为一个灵活而开放的云平台,通过该平台,您可以在数据中心快速生成.部署和管理应用程序.这些年来,微软越来越开放,据全球热门开源代码库 GitHub公 ...

最新文章

  1. python 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数
  2. VMware HA实战攻略之五VMwareHA测试验收
  3. 高性能I/O设计模式Reactor和Proactor
  4. Linux软件安装之RPM的安装技巧
  5. 【PAT甲级 排序】1012 The Best Rank (25 分) C++ 全部AC
  6. cf600 E. Lomsat gelral
  7. GY歌谣之读懂每行代码(飞智)
  8. matlab取矩阵实部和虚部,MATLAB中容易忽略却经常遇到的小技巧总结
  9. iphonex价格_iPhone X竟然可以换LCD屏幕,价格只要一半
  10. web前端分享JavaScript到底是什么?特点有哪些?
  11. Flutter入门进阶之旅(二)Hello Flutter
  12. 马斯克血洗推特!传机器学习裁员90%,团队直接解散
  13. Windows 11 找不到文件C:\ProgramData\Package Cache\{xxxx}xxx.exe。请确定文件名是否正确后,再试一次。
  14. 看《延禧攻略》学配色与构图
  15. 新技术预研Android
  16. nafxcw.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined问题解决
  17. 机器人导航——路径跟踪
  18. Tomcat 与 JDK 版本对应
  19. MATLAB程序:BPSK/QPSK的调制与解调
  20. 【Linux网络服务】Centos7搭建yum服务器

热门文章

  1. ava联网3D坦克大战(网络编程)2020
  2. MT9M021/MT9M031总结
  3. parseFloat的使用
  4. 哈工大计算机系统大作业 程序人生-Hello‘s P2P
  5. 国内网络安全厂商网站合集
  6. openssl之RSA相关函数
  7. UML状态图画法参考博文整理
  8. pandas中的get_dummies()
  9. pandas.get_dummies()
  10. turtle绘图如何改变线条颜色(切换RGB模式)