linux性能优化之磁盘IO
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
磁盘IO系统性能
磁盘结构
性能指标
监测工具
优化措施
TDB | 后台开发中心
磁盘 I/O 性能指标
每秒 I/O 数(IOPS )——传输小块不连续数据时 吞吐量(Throughput)——传输大块不连续数据的数据
平均 I/O 数据尺寸——32K
磁盘活动时间百分比(Utilization)——70% 服务时间(Service Time) I/O 等待队列长度(Queue Length)——磁盘数* 2 等待时间(Wait Time) ——持续超过 10ms
Linux下的标识
IDE: hdx~;SCSI:sdx~
“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为
辅助从属盘),“~”代表分区,1到4表示主分区或扩展分区,
从5开始就是逻辑分区
TDB | 后台开发中心
Linux磁盘系统
我们可以通过“fdisk -l”命令来查看系统的磁盘情况:
TDB | 后台开发中心
磁盘结构
硬盘的接口类型
IDE(制造简单、成本低、兼容性好,20M~130MBPS) SCSI(速度快、可靠性高、热拔插、高成本,40M~320MBPS) SATA (串口硬盘、结构简单、自动纠错,150M~600MBPS) SAS (串口硬盘、兼容SATA,300M~1300M) 光钎通信(热插拔性、高速带宽、远程连接、连接设备数量大 )
TDB | 后台开发中心
磁盘结构
硬盘的逻辑结构
盘片(Platter) 盘面(Side)
磁道(Track)
柱面 (Cylinder) 数据的读/写按柱面进行 扇区(Sector )(512Byte)
扇区头标和数据区 交叉因子 &磁头扭斜
硬盘容量:盘面数×柱面数×扇 区数×512字节
TDB | 后台开发中心
Linux性能优化
磁盘IO
TDB | 后台开发中心
磁盘IO系统性能
磁盘结构
性能指标
监测工具
优化措施
TDB | 后台开发中心
磁盘结构
硬件指标
转速 (5400-15000) 单碟容量 (80G-640G) 平均寻道时间 (3-6ms) 缓存 (8M-64M) 内部数据传输率 (60M-90M)
温彻斯特式硬盘
TDB | 后台开发中心
总结
磁盘IO系统性能
磁盘结构
性能指标
监测工具
优化措施
TDB | 后台开发中心
Any Question?
TDB | 后台开发中心
谢 谢!
TDB | 后台开发中心
TDB | 后台开发中心
磁盘 I/O 性能指标:IOPS
IOPS(IO per Second)
寻址时间(Seek Time) 旋转延时(Rotational Delay) 传送时间(Transfer Time)
IO Time = Seek Time + 60 sec/Rotational Speed/2 + IO ChunkSize/Transfer Rate IOPS = 1/IO Time 常用磁盘的IOPS,转速15K RPM,平均寻道时间为5ms,最大传输速率为40MB/s ,不 同IO大小下的IOPS:
Raid5:N/4, Raid10:N/2
传输速度(Transfer Rate)
random_throughtput = random_IOPS * IO_chunk_size
TDB | 后台开发中心
磁盘 I/O 性能提升—应用层优化
充分利用磁盘的特性
管家数据上报
120字节/record 300亿每天,峰值50w/s
高速缓存(Cache)
缓存数据 预读 回写
使用RAID
Raid0:无差错控制的带区组 Raid1:镜象结构 Raid5:分布式奇偶校验的独立磁盘结构 Raid10:高可靠性与高效磁盘结构
减少应用存取磁盘的次数
TDB | 后台开发中心
磁盘 I/O 性能提升
使用RAID
Level
RAID 0 RAID 1 RAID 5 RAID 10
4K: (1/7.1 ms = 140 IOPS) 5ms + (60sec/15000RPM/2) + 4K/40MB = 5 + 2 + 0.1 = 7.1 16K :(1/7.4 ms = 135 IOPS) 5ms + (60sec/15000RPM/2) + 16K/40MB = 5 + 2 + 0.4 = 7.4 64K: (1/8.6 ms = 116 IOPS) 5ms + (60sec/15000RPM/2) + 64K/40MB = 5 + 2 + 1.6 = 8.6
TDB | 后台开发中心
IO性能监控:iostat
TDB | 后台开发中心
IO性能监控
vmstat top
sar
...
TDB | 后台开发中心
磁盘IO系统性能
磁盘结构
性能指标
监测工具
优化措施
TDB | 后台开发中心
提升磁盘 I/O 性能
硬件保障
IDE、SCSI=> SATA、SAS
使用多个控制器
如何保存到数据库
块状设备:写一个字节和写一个block是
一样快的
线性设备:线性写远比随机写快
TDB | 后台开发中心
磁盘 I/O 性能提升—应用层优化
减少磁盘IO的次数
应用层增加Cache,减少读的次数
延迟写、批量写,减少写的次数 利用产品特性,提高有效读写率
数据统计:公共字段每条的数值基本一样,如何提 高储存效率? 统计的对象往往是多个字段中的一两个字段,如何 提高读取效率 InfoBright:列式存储、知识网络、高效压缩
TDB | 后台开发中心
磁盘 I/O 性能指标
传输速度(Transfer Rate): IOPS * IO Chunk Size 4K: 140 * 4K = 560K / 40M = 1.36%
16K: 135 * 16K = 2160K / 40M = 5.27%
32K: 116 * 32K = 3712K / 40M = 9.06% IO响应时间(IO Response Time)
服务时间+等待时间
队列大小<最大IOPS的70%
TDB | 后台开发中心
磁盘IO系统性能
磁盘结构
性能指标
监测工具
优化措施
TDB | 后台开发中心
IO性能监控:iostat
rrqm/s、wrqm/s:每秒进行merge的读、写操作数目。 r/s、w/s:每秒读、写操作数。(IOPS) rsec/s 、wsec/s:每秒向设备读取、写入的扇区数量。 rkB/s、wkB/s:每秒读、写KB字节数。(吞吐率) avgrq-sz I/O 请求的平均扇区数。(平均单次IO大小) avgqu-sz I/O 请求的平均队列长度。 await I/O 请求的平均等待时间,单位为毫秒。 (平均IO响应时间 ) svctm I/O 请求的平均服务时间,单位为毫秒。 %util 处理 I/O 请求所占用的时间的百分比,即设备利用率。
Redundancy
No Yes Yes Yes
wk.baidu.com
Disks required
N N*2 N+1 N*2
Faster reads
Yes Yes Yes Yes
Faster writes
Yes No No Yes
对性能的影响
IO响应时间(IO Response Time) :保持不变,控制在10ms
IOPS :Read提升N倍,Write(Raid0:N,Raid1:N/2,