zoukankan      html  css  js  c++  java
  • 磁盘调度及linux配置参数

     https://www.cnblogs.com/ywcz060/p/5589926.html

    io调度的目的是希望磁头能往一个方向移动,移动到底再转向(转向相对耗时较久),这个场景类似电梯,所以IO调度器也被叫做电梯,相应的调度算法被叫做电梯算法。
    IO调度的四种算法如下:
    CFQ(完全公平队列IO调度程序)
    CFQ赋予IO请求一个优先级,IO优先级独立于进程优先级。
    CFQ为每个进程/线程,单独的创建一个队列来管理该进程所产生的请求,也就是说每个进程一个队列,每个队列会进行merge和sort。
    各队列之间的调度使用时间片来划分,以此保证每个进程都能很好的分配到IO资源,IO调度器每次执行一个进程的4次请求。
    NOOP(电梯式调度程序)
    NOOP对所有的IO请求都使用FIFO队列形式处理,当有新请求到来时,会插入到最近的请求之后(类似于电梯的中途上电梯,然后高层已经有人先按了电梯按钮)
    Deadline(截止时间调度算法)
    确保在一个截止时间内服务请求,而不是立即服务(优先服务相邻位置的IO请求)。
    Deadline实现了四个队列,其中两个分别处理read和write,进行正常io请求的合并。
    另外两个队列用于处理超时的read和write,将超时的请求拿到这两个队列里,IO调度器优先调度超时队列中的请求
    AS(预料IO调度请求)

    对比
    cfq是一种以进程为出发点考虑的调度算法,尽量保证公平
    deadline是一种以机械硬盘吞吐量为出发点的调度算法
    noop使用于ssd,依赖硬盘本身的调度优化
    参数:
    /sys/block/sda/queue/scheduler 系统使用的磁盘调度算法(sda为一个设备)
    /sys/block/sda/queue/iosched/* 磁盘调度的一些配置参数
    /sys/block/sda/queue/nr_requests 磁盘队列长度
    /sys/block/sda/queue/read_ahead_kb 一次提前读取的大小,无论实际是否需要这么大

    下面系统参数文件路径为:/proc/sys/vm/
    vm.dirty_ratio 文件系统写缓冲区的百分比上限大小(相对总内存),如果超过这个大小,新的io会阻塞,直到胀页被写回磁盘
    vm.dirty_background_ratio 可以用于存储胀页的文件系统缓存区的大小
    vm.dirty_background_bytes 使用字节的方式设置,而不是百分比
    vm.dirty_bytes 同上
    vm.dirty_expire_centisecs 当pdflush/flush/kdmflush进程工作时,它会检查胀页的存活时间,超过这个时间的胀页会被异步写到磁盘。(默认30秒)
    dirty_writeback_centisecs pdflush/flush/kdmflush循环工作的时间(sleep时间),启动之后检查dirty_expire_centisecs进行工作。(默认500ms)

  • 相关阅读:
    关于jQuery的选择器
    解读position定位
    html5新增的功能。
    关于ajax的同步异步
    响应式布局由来和剖析
    jQuery的效果函数及如何运用
    jQuery的选择器
    position定位的解析与理解
    HTML5与CSS3中新增的属性详解
    对Ajax的解析
  • 原文地址:https://www.cnblogs.com/gc65/p/12711472.html
Copyright © 2011-2022 走看看