磁盘 io 的性能指标 简介
目录
主要关注指标
IOPS
带宽
响应时间
磁盘繁忙程度
服务队列满
文件系统使用率
Inode使用率
业务服务器的操作系统作为存储的用户只能看到disk(存储层面的LUN),而存储管理员才知道存储内部的具体RAID方式、条带化方式等等,在关注系统性能的活动(性能测试、性能调优)中,一般很少直接关注磁盘IO的指标,而是遇到性能问题(比如业务的响应时间非常慢),并且逐步排查到磁盘时,才重点关注磁盘IO的性能指标。这是因为,磁盘IO的性能的确是不好拿一个指标说清楚的事。
当磁盘IO有性能问题,需要分析IOPS、MBPS、服务时间、平均每次写入的block大小、队列等待时间等指标,分析IO路径、驱动、光纤卡、光纤交换机、后台存储的规划、硬盘域和存储池划分、thin LUN还是thick LUN、存储的缓存设置、IO的Qos、磁盘类型、存储接口模块数量、RAID划分、是否配置快照、克隆、远程复制等增值功能、存储控制器的CPU利用率,甚至数据在盘片的中心还是边缘等等。
本节并不主要从存储的角度介绍,而是从存储的用户(业务服务器的操作系统)的角度介绍磁盘IO的性能指标,以及相关分析。
主要关注指标
虽然每类物理资源都有N个性能指标来体现,但CPU、内存资源最主要的指标只有一个,即利用率,但磁盘IO的主要指标却有三个(IOPS、带宽、响应时间)。这是因为存储的能力会根据IO模型的不同而差异较大,IO模型可以理解为读IO和写IO的比例、顺序的还是随机的、每个IO的大小等等。例如:当测试IOPS***能力的时候,采用随机小IO进行测试,此时占用的带宽是非常低的,响应时间也会比顺序的IO要长很多。而测试顺序大IO时,此时带宽占用非常高,但IOPS却很低。
从业务服务器、存储控制器、前端主机端口、磁盘、LUN、存储池等角度,都有以下三个主要指标,本文重点从业务服务器角度介绍。
IOPS
I/O per second,即每秒钟可以处理的I/O个数,用来衡量存储系统的I/O处理能力。在数据库OLTP(Online Transaction Processing)业务场景,通常以IOPS衡量系统的性能。测量存储的***IOPS往往是以随机读写小IO来评估。
1. 获取来源
总IOPS:Nmon DISK_SUMM Sheet:IO/Sec
每个盘对应的读IOPS :Nmon DISKRIO Sheet
每个盘对应的写IOPS :Nmon DISKWIO Sheet
总IOPS:命令行iostat -Dl:tps
每个盘对应的读IOPS :命令行iostat -Dl:rps
每个盘对应的写IOPS :命令行iostat -Dl:wps
2. 适用场景
对于I/O小于64KB的应用场景,存储性能主要关注IOPS指标。
OLTP(联机事务处理)系统是大量用户在线进行事务操作的数据库业务的一种应用类型。
OLTP应用的负载特征如下:
从数据库角度看:
– 每个事务的读、写、更改涉及的数据量非常小。
– 数据库的数据必须是***的,所以对数据库的可用性要求很高。
– 同时有很多用户访问。
– 要求数据库快速响应,通常一个事务需要在几秒内完成。
从存储角度看:
– 每个I/O非常小,通常为2KB~8KB。
– 访问硬盘数据的位置非常随机。
– 至少30%的数据是随机写操作。
– REDO日志(重做日志文件)写入非常频繁
带宽
每秒钟可以处理的数据量,常以KB/S或MB/s或GB/s为单位,表示为KBPS/MBPS/GBPS,用于衡量存储系统的吞吐量。在数据库OLAP(Online Analytical Processing)业务、媒资业务、视频监控业务等应用场景,通常以带宽衡量系统性能。
1. 获取来源
总带宽:Nmon DISK_SUMM Sheet:Disk Read KB/s,Disk Write KB/s
每个盘对应的读带宽:Nmon DISKREAD Sheet
每个盘对应的写带宽:Nmon DISKWRITE Sheet
总带宽:命令行iostat -Dl:bps
每个盘对应的读带宽:命令行iostat -Dl:bread
每个盘对应的写带宽:命令行iostat -Dl:bwrtn
2. 适用场景
对于I/O大于等于64KB的应用场景,存储性能主要关注带宽指标。
OLAP业务是用户长时间在线对数据库执行复杂的统计查询操作的一种应用类型。
OLAP应用的负载特征如下:
从数据库管理员角度看:
– 数据修改量小或无数据修改。
– 数据查询过程复杂。
– 数据的使用频率逐渐减小。
– 查询结果以统计值呈现,方便查看。
从存储采样看:
– 单个I/O数据量大,通常为64KB~1MB。
– 读取操作通常顺序读取。
– 当进行读取操作进行时,写操作的数据存放在临时表空间内。
– 对在线日志写入少。只有在批量加载数据时,写入操作增多。
响应时间
也称为时延或者服务时间,发起I/O请求到I/O处理完成的时间间隔,常以毫秒(ms)为单位。
1. 获取来源
每个盘对应的读响应时间:命令行iostat -Dl:read - avg serv,max serv
每个盘对应的写响应时间:命令行iostat -Dl:write - avg serv,max serv
2. ***实践
数据库OLTP业务一般时延要求10ms以下,事实上大多数情况下不足1ms;VDI(Virtual Desktop Infrastructure)场景一般时延要求30ms以下;视频点播和视频监控的时延要求随码率的不同而不同。
从业务系统用户的角度,响应时间是这三个指标中最重要的指标。因为,如果IOPS或带宽达到了存储的瓶颈,那么一定会体现在IO响应时间上。
其他关注指标
用户从业务系统经常关注的其他指标有:磁盘繁忙程度、队列满等等,这里简单介绍一下。
磁盘繁忙程度
Diskbusy体现了磁盘驱动的利用率,即磁盘驱动有百分之多少时间是活动的。
1. 获取来源
Nmon DISKBUSY Sheet
命令行iostat -Dl:% tm_act
2. 详细解释
但这个指标的高低与IOPS、带宽并不是线性关系。例如当diskbusy=80%的时候IOPS=500,当diskbusy=90%的时候IOPS可能可以达到800。
可以把驱动理解为道路,每个IO的数据块理解为道路上行使的汽车。当道路上没有车的时候,认为是不活动的;当道路上有车的时候,认为是活动的,但有1辆车也是活动,有10辆车也是活动。因此diskbusy并不能作为磁盘IO的重要性能指标。但在日常情况下,可以从这个值的高低对磁盘使用情况有个大概的判断。
服务队列满
服务队列每秒变满(磁盘不再接受服务请求)的次数。
1. 获取来源
命令行iostat -Dl:sqfull
2. 详细解释
通常情况下这个sqfull的值为0,如果经常不为0,可能是IO队列深度太小或者磁盘/存储能力不足。
queue_depth 是IO队列深度,即AIX 一次可以传送到磁盘设备的命令的数量,把命令放在队列中再传送给磁盘可以提高 I/O 性能。这个属性限制了 AIX 可以传送到设备的***命令的数量。可以通过命令查看lsattr -El hdiskxxx|grep queue_depth,queue_depth 默认数值为 4,可以调整。但调整queue_depth这种方法对于提高磁盘IO能力来说很有限。
文件系统使用率
文件系统和inode的利用率其实已经不在磁盘IO的讨论范围,但仍然属于磁盘的范围,需要业务系统用户关注。
1. 获取来源
NMON:JFSFILE SHEET
命令行df- g
2. ***实践
当使用率超过80%的时候,系统的性能可能会被拖慢。
同时,统计业务量与文件系统利用率的增长情况,可以推测该文件系统可以支撑的***业务量,管理员可以根据日常业务量和文件系统的空间,设定备份删除策略。
Inode使用率
Inode:索引节点,它用来存放文件及目录的基本信息,inode数量即文件系统的节点的***数量。
Inode使用率容易被忽略。对于一些文件大小很小,文件数量却很大的系统,若采用默认参数生成文件系统,可能导致inode数量不足。当inode使用率达到100%后就不能再创建新的文件或目录。
1. 获取来源
NMON:JFSINODE SHEET
命令行df- g:%Iused
磁盘 io 的性能指标 简介相关推荐
- 磁盘I:O 性能指标 以及 如何通过 fio 对nvme ssd,optane ssd, pmem 性能摸底
文章目录 1. 磁盘I/O性能指标 1.1 性能指标 1.2 I/O 观测 1.2.1 磁盘I/O 观测 1.2.2 进程I/O观测 2. Fio 性能测试 2.1 环境准备 2.2 测试维度选择 2 ...
- 一招修复内存不能read_read文件一个字节实际会发生多大的磁盘IO?
先讲一个作者大约5-6年前我在某当时很火的一个应用分发创业公司的面试小插曲,该公司安排了一个刚工作1年多的一个同学来面我,聊到我们项目中的配置文件里写的一个开关,这位同学就跳出来说,你这个读文件啦,每 ...
- 磁盘 I/O性能指标
磁盘 I/O性能指标 在介绍磁盘 I/O 监控命令前,我们需要了解磁盘 I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能.磁盘I/O 性能监控的指标主要包括: 1)每秒 I/O 数(IO ...
- 鲲鹏性能优化十板斧(四)——磁盘IO子系统性能调优
1.1 调优简介 调优思路 CPU的Cache.内存和磁盘之间的访问速度差异很大,当CPU计算所需要的数据并没有及时加载到内存或Cache中时,CPU将会浪费很多时间等待磁盘的读取.计算机系统通过ca ...
- IO系统性能之二:缓存和RAID如何提高磁盘IO性能
高速缓存(Cache) RAID(Redundant Array Of Inexpensive Disks) 四个性能指标的变化 IO响应时间(IO Response Time) IOPS 传输速度( ...
- 【测试】 FIO:ceph/磁盘IO测试工具 fio(iodepth深度)
目录 随看随用 NAS文件系统测试 块系统测试 FIO用法 FIO介绍 FIO 工具常用参数: FIO结果说明 I/O 的重放('录'下实际工况的IO,用fio'重放') fio工作参数可以写入配置文 ...
- IOmeter磁盘IO性能测试工具
Linux下IOmeter的使用 ------------------------------------- IOmeter是intel开发的一款免费软件,主要用于Windows和Linux平台下对磁 ...
- 测试服务器磁盘io性能,测试磁盘IO瓶颈
一.简介 由于最近压测kafka的吞吐量,发现优化kafka的时候并没有提升吞吐量.所以怀疑是服务器本身的瓶颈.于是做了服务器的IO瓶颈测试. 硬盘位正常SATA磁盘,做的raid1. 二.测试 1. ...
- 如何增强服务器io性能,云服务器磁盘io性能提升
云服务器磁盘io性能提升 内容精选 换一换 根据是否支持挂载至多台云服务器可以将磁盘分为非共享磁盘和共享磁盘.一个非共享磁盘只能挂载至一台云服务器,而一个共享磁盘可以同时挂载至多台云服务器.共享磁盘是 ...
最新文章
- debian java 安装路径_Debian安装JAVA环境(转载)
- 华为mate40pro更新鸿蒙时间,确认入网!鸿蒙系统将首发mate40Pro4G版,华为旧旗舰也迎来升级...
- Hadoop Hive sql语法详解
- Django目录结构说明
- python离线安装flask_Linux下离线安装Flask + gunicorn服务详细步骤
- extjs 实用开发指南_如何提出有效问题:针对开发人员的实用指南
- oracle 重建 sys密码文件
- 数据结构与算法之--高级排序:shell排序和快速排序
- centos 7 mysql 源码安装_centos7 mysql5.7.17源码安装
- LeetCode(225)——用队列实现栈(JavaScript)
- 高效管理CrossOver容器里的程序
- 移动端常用Axure组件库 元件库下载 包含微信 支付宝常用组件元素
- VB2010(29)Web部署应用程序
- WLAN从入门到精通-1
- 0021:孩子也是要将心比心的
- 网络信息检索(五)查询处理:查询方式+查询操作
- 【转】钓鱼邮件攻击检测
- 合成大西瓜小游戏微信小程序源码
- 2.1.2 Android刘海屏适配
- Memory Hierarchy-计算机各级存储器速度对比
热门文章
- 未授权用户在此计算机上的的请求登陆类型
- DPDK — PDUMP 抓包工具
- The connected J-Link is defective,Proper operation cannot be guaranteed......的解决办法
- web复习day03:request
- SSPL的MongoDB再被抛弃,GUN Health也合流PostgreSQL
- FortiGate SSH管理认证问题安全公告
- 使用Linux的lsblk命令列出块设备信息
- 解决:Reading table information for completion of table and column names
- PHP学习笔记6:面向对象的PHP
- 时代中坚:互联网电视迎来极致时代