SlideShare a Scribd company logo
1 of 23
Download to read offline
Linux I/O Scheduler
       沐剑
访问磁盘的过程
访问磁盘的过程
                   Typical HDD figures
•   寻道时间
                   HDD                   Average
    Server: 3ms    Spindle               rotational
    Common: 10ms   [rpm]                 latency [ms]
                   4,200                 7.14
•   旋转延迟
                   5,400                 5.56
    平均半圈
                   7,200                 4.17
                   10,000                3.00
                   15,000                2.00

•   存取时间=平均寻道时间+平均旋转延迟
•   数据读取时间
    <1ms,忽略丌计

•   影响IOPS的主要因素:寻道时间
SATA II                SAS
7200 RPM IOPS:   ~90   15K RPM IOPS:   ~180
SATA II
Intel X25-M IOPS:   ~8600
访问磁盘的过程
•   如何让磁盘读写更快

    减少寻道时间(避免磁头移动开销)

    让磁头旋转一圈读写更多相邻扇区的数据(顺序读写)
扇区

•   操作系统视角

    逻辑块序列


•   硬件视角

    物理扇区


•   磁盘控制器

    映射「逻辑块」->实际物理扇区
读取一个扇区
•   CPU->磁盘控制器

    读某个逻辑块号


•   磁盘控制器

    快速表搜索

    逻辑块号->(盘面,磁道,扇区)三元组,唯一标示物理扇区


•   机械移动(寻道、旋转)
•   拷贝主存
• I/O调度器的层级结构
I/O子系统
Block I/O Layer
I/O调度器
•   目标

    减少寻道时间,让旋转一圈读取更多扇区
•   任务

    1、管理块设备请求队列
    2、分配I/O资源给请求


•   做法

    合并 + 排序
合并
•   同一或多个相邻扇区的请求 —— 合并 ——> 一次I/O
•   一次I/O对应一条寻址指令


•   减少系统开销和寻址次数
排序
•   I/O请求按照扇区增长排列


•   Sorted Queue
• 几种I/O调度器
Linus电梯
•   简单的合并+排序


•   避免请求饥饿

    梱测到队列中有长期没有被处理的请求,那么就暂时中止插入


•   缺点

    I/O调度器并没有真正去处理饥饿请求,而是采取了一种间接的方式,所以很
    有可能饥饿的请求依旧饥饿,并没有解决实质问题
Deadline
•   带超时的调度算法


•   3个I/O Queue

    Read Queue(default timeout: 500ms) FIFO
    Write Queue(default timeout: 5000ms) FIFO
    Sorted Queue


•   缺点

    当系统存在大量顺序请求时,可能导致请求无法被很好地排序,引发频繁寻
    道,比较适合随机访问多、时效性高的场景
Deadline
•   权衡了全局吞吐量和系统延迟


•   请求同时插入Read/Write Queue和Sorted Queue


•   writes_starved

    避免写饥饿,当写饥饿次数达到writes_starved,写请求会被立即处理
Anticipatory (AS)
•   2.6.18之前默认的I/O调度器

    基于预测算法

    主要是为了解决Deceptive idleness问题


•   处理完一个请求,丌直接处理下一个请求,而是针对上一个请求的进程等待
    片刻,如果该进程发出一个不当前扇区相同或相邻扇区的请求,则优先处理
•   默认等待6ms
•   如果系统存在大量相邻扇区请求,性能会很好
CFQ
•   2.6.18之后默认的I/O调度器

    每个提交I/O请求的进程都有一个自己单独的Sorted Queue


•   在一个时间片中,CFQ调度器选择一个进程,处理其I/O队列
•   丌是简单的轮询,基于红黑树选择进程(进程优先级)


•   特点是保证各个进程的I/O请求能被均衡处理


•   也有类似AS的等待机制
•   QUEUE_FLAG_NONROT
NOOP
•   面向随机访问设备(例如SSD)


•   我们只做合并,元芳,你怎么看?


•   对于SSD

    选择NOOP还是Deadline?

    Deadline平衡读写比例
Benchmark




Red Hat Enterprise Linux 4 I/O schedulers vs. Red Hat Enterprise Linux 3
       for database Oracle 10G oltp/dss (relative performance)
谢谢!

More Related Content

What's hot

吴岷 视频Cdn分发、调度与服务的探讨
吴岷  视频Cdn分发、调度与服务的探讨吴岷  视频Cdn分发、调度与服务的探讨
吴岷 视频Cdn分发、调度与服务的探讨drewz lin
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析frogd
 
IoTDB OptimizeAndCaseStudy
IoTDB OptimizeAndCaseStudyIoTDB OptimizeAndCaseStudy
IoTDB OptimizeAndCaseStudyJialinQiao
 
云计算环境中Ssd在cassandra测试的性能表现
云计算环境中Ssd在cassandra测试的性能表现 云计算环境中Ssd在cassandra测试的性能表现
云计算环境中Ssd在cassandra测试的性能表现 july19850903
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0jinqing zhu
 
Java_07:Thread
Java_07:ThreadJava_07:Thread
Java_07:ThreadBrad Chao
 
排队论及其应用浅析
排队论及其应用浅析排队论及其应用浅析
排队论及其应用浅析frogd
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,DbaCevin Cheung
 
Redis介绍
Redis介绍 Redis介绍
Redis介绍 yubao fu
 
Ch8 file system management(2013 ncu-nos_nm)
Ch8   file system management(2013 ncu-nos_nm)Ch8   file system management(2013 ncu-nos_nm)
Ch8 file system management(2013 ncu-nos_nm)Kir Chou
 
1221 探討 Windows Server 2008 WDS 部署服務
1221 探討 Windows Server 2008 WDS 部署服務1221 探討 Windows Server 2008 WDS 部署服務
1221 探討 Windows Server 2008 WDS 部署服務Timothy Chen
 
DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例Hui Liu
 
MySQL查询优化浅析
MySQL查询优化浅析MySQL查询优化浅析
MySQL查询优化浅析frogd
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Jinrong Ye
 
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具Will Huang
 

What's hot (20)

吴岷 视频Cdn分发、调度与服务的探讨
吴岷  视频Cdn分发、调度与服务的探讨吴岷  视频Cdn分发、调度与服务的探讨
吴岷 视频Cdn分发、调度与服务的探讨
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析
 
IoTDB OptimizeAndCaseStudy
IoTDB OptimizeAndCaseStudyIoTDB OptimizeAndCaseStudy
IoTDB OptimizeAndCaseStudy
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 
云计算环境中Ssd在cassandra测试的性能表现
云计算环境中Ssd在cassandra测试的性能表现 云计算环境中Ssd在cassandra测试的性能表现
云计算环境中Ssd在cassandra测试的性能表现
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
Hdfs
HdfsHdfs
Hdfs
 
IoTDB Ops
IoTDB OpsIoTDB Ops
IoTDB Ops
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0
 
Java_07:Thread
Java_07:ThreadJava_07:Thread
Java_07:Thread
 
排队论及其应用浅析
排队论及其应用浅析排队论及其应用浅析
排队论及其应用浅析
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,Dba
 
Redis介绍
Redis介绍 Redis介绍
Redis介绍
 
Ch8 file system management(2013 ncu-nos_nm)
Ch8   file system management(2013 ncu-nos_nm)Ch8   file system management(2013 ncu-nos_nm)
Ch8 file system management(2013 ncu-nos_nm)
 
1221 探討 Windows Server 2008 WDS 部署服務
1221 探討 Windows Server 2008 WDS 部署服務1221 探討 Windows Server 2008 WDS 部署服務
1221 探討 Windows Server 2008 WDS 部署服務
 
DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例
 
MySQL查询优化浅析
MySQL查询优化浅析MySQL查询优化浅析
MySQL查询优化浅析
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
 
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
 
Linux学习
Linux学习Linux学习
Linux学习
 

Similar to Linux I/O Scheduler

Web并发模型粗浅探讨
Web并发模型粗浅探讨Web并发模型粗浅探讨
Web并发模型粗浅探讨Robbin Fan
 
Web并发模型粗浅探讨v3
Web并发模型粗浅探讨v3Web并发模型粗浅探讨v3
Web并发模型粗浅探讨v3乐费 胡
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)Feng Yu
 
数据库性能模型与容量规划
数据库性能模型与容量规划数据库性能模型与容量规划
数据库性能模型与容量规划freezr
 
Java应用性能测试与分析
Java应用性能测试与分析Java应用性能测试与分析
Java应用性能测试与分析Frank Lee
 
Mysql调优
Mysql调优Mysql调优
Mysql调优ken shin
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践丁 宇
 
System optimize experience
System optimize experienceSystem optimize experience
System optimize experience召仁 刘
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB
 
System optimize experience
System optimize experienceSystem optimize experience
System optimize experience召仁 刘
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事freezr
 
20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统锐 张
 
搶救資料庫效能大作戰
搶救資料庫效能大作戰搶救資料庫效能大作戰
搶救資料庫效能大作戰Rico Chen
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化丁 宇
 
基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送OpenRestyCon
 
賽門鐵克 NetBackup 7.5 完整簡報
賽門鐵克 NetBackup 7.5 完整簡報賽門鐵克 NetBackup 7.5 完整簡報
賽門鐵克 NetBackup 7.5 完整簡報Wales Chen
 
DNS协议与应用简介
DNS协议与应用简介DNS协议与应用简介
DNS协议与应用简介琛琳 饶
 
寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事Chieh (Jack) Yu
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列XiaoJun Hong
 

Similar to Linux I/O Scheduler (20)

Web并发模型粗浅探讨
Web并发模型粗浅探讨Web并发模型粗浅探讨
Web并发模型粗浅探讨
 
Web并发模型粗浅探讨v3
Web并发模型粗浅探讨v3Web并发模型粗浅探讨v3
Web并发模型粗浅探讨v3
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)
 
数据库性能模型与容量规划
数据库性能模型与容量规划数据库性能模型与容量规划
数据库性能模型与容量规划
 
Java应用性能测试与分析
Java应用性能测试与分析Java应用性能测试与分析
Java应用性能测试与分析
 
Mysql调优
Mysql调优Mysql调优
Mysql调优
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
 
System optimize experience
System optimize experienceSystem optimize experience
System optimize experience
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360
 
System optimize experience
System optimize experienceSystem optimize experience
System optimize experience
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统
 
搶救資料庫效能大作戰
搶救資料庫效能大作戰搶救資料庫效能大作戰
搶救資料庫效能大作戰
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
 
基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送
 
賽門鐵克 NetBackup 7.5 完整簡報
賽門鐵克 NetBackup 7.5 完整簡報賽門鐵克 NetBackup 7.5 完整簡報
賽門鐵克 NetBackup 7.5 完整簡報
 
DNS协议与应用简介
DNS协议与应用简介DNS协议与应用简介
DNS协议与应用简介
 
寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事
 
分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列
 

Linux I/O Scheduler

  • 3. 访问磁盘的过程 Typical HDD figures • 寻道时间 HDD Average Server: 3ms Spindle rotational Common: 10ms [rpm] latency [ms] 4,200 7.14 • 旋转延迟 5,400 5.56 平均半圈 7,200 4.17 10,000 3.00 15,000 2.00 • 存取时间=平均寻道时间+平均旋转延迟 • 数据读取时间 <1ms,忽略丌计 • 影响IOPS的主要因素:寻道时间
  • 4. SATA II SAS 7200 RPM IOPS: ~90 15K RPM IOPS: ~180
  • 5. SATA II Intel X25-M IOPS: ~8600
  • 6. 访问磁盘的过程 • 如何让磁盘读写更快 减少寻道时间(避免磁头移动开销) 让磁头旋转一圈读写更多相邻扇区的数据(顺序读写)
  • 7. 扇区 • 操作系统视角 逻辑块序列 • 硬件视角 物理扇区 • 磁盘控制器 映射「逻辑块」->实际物理扇区
  • 8. 读取一个扇区 • CPU->磁盘控制器 读某个逻辑块号 • 磁盘控制器 快速表搜索 逻辑块号->(盘面,磁道,扇区)三元组,唯一标示物理扇区 • 机械移动(寻道、旋转) • 拷贝主存
  • 12. I/O调度器 • 目标 减少寻道时间,让旋转一圈读取更多扇区 • 任务 1、管理块设备请求队列 2、分配I/O资源给请求 • 做法 合并 + 排序
  • 13. 合并 • 同一或多个相邻扇区的请求 —— 合并 ——> 一次I/O • 一次I/O对应一条寻址指令 • 减少系统开销和寻址次数
  • 14. 排序 • I/O请求按照扇区增长排列 • Sorted Queue
  • 16. Linus电梯 • 简单的合并+排序 • 避免请求饥饿 梱测到队列中有长期没有被处理的请求,那么就暂时中止插入 • 缺点 I/O调度器并没有真正去处理饥饿请求,而是采取了一种间接的方式,所以很 有可能饥饿的请求依旧饥饿,并没有解决实质问题
  • 17. Deadline • 带超时的调度算法 • 3个I/O Queue Read Queue(default timeout: 500ms) FIFO Write Queue(default timeout: 5000ms) FIFO Sorted Queue • 缺点 当系统存在大量顺序请求时,可能导致请求无法被很好地排序,引发频繁寻 道,比较适合随机访问多、时效性高的场景
  • 18. Deadline • 权衡了全局吞吐量和系统延迟 • 请求同时插入Read/Write Queue和Sorted Queue • writes_starved 避免写饥饿,当写饥饿次数达到writes_starved,写请求会被立即处理
  • 19. Anticipatory (AS) • 2.6.18之前默认的I/O调度器 基于预测算法 主要是为了解决Deceptive idleness问题 • 处理完一个请求,丌直接处理下一个请求,而是针对上一个请求的进程等待 片刻,如果该进程发出一个不当前扇区相同或相邻扇区的请求,则优先处理 • 默认等待6ms • 如果系统存在大量相邻扇区请求,性能会很好
  • 20. CFQ • 2.6.18之后默认的I/O调度器 每个提交I/O请求的进程都有一个自己单独的Sorted Queue • 在一个时间片中,CFQ调度器选择一个进程,处理其I/O队列 • 丌是简单的轮询,基于红黑树选择进程(进程优先级) • 特点是保证各个进程的I/O请求能被均衡处理 • 也有类似AS的等待机制 • QUEUE_FLAG_NONROT
  • 21. NOOP • 面向随机访问设备(例如SSD) • 我们只做合并,元芳,你怎么看? • 对于SSD 选择NOOP还是Deadline? Deadline平衡读写比例
  • 22. Benchmark Red Hat Enterprise Linux 4 I/O schedulers vs. Red Hat Enterprise Linux 3 for database Oracle 10G oltp/dss (relative performance)