当Linux没有I / O调度程序时,它意味着什么

Modified on: Fri, 20 Sep 2019 07:00:02 +0800

我有一些运行Ubuntu基于云的图像14.04-1 LTS版本的虚拟机。我想在VM上看到不同IO调度程序的IO性能,因此我转到客户操作系统上的/sys/block/<drive>/queue/scheduler来更改IO调度程序。通常,应该选择cfqdeadlinenoop。但我看到的是none。这是否意味着Canonical已删除基于云的映像中的I / O调度程序或调度程序none这里是重命名的noop调度程序?如果我们在系统中没有I / O调度程序会发生什么?所有的io请求都是按FIFO顺序直接发送给主机的?

感谢您的光临!

作者:,Ha Son Hai

最佳答案

来自此Debian Wiki

  

低延迟IO调度程序

  
  

(对于使用NVMe协议而不是SATA的SSD,此步骤不是必需的,它绕过传统的I / O调度程序并使用blk-mq模块。)

  
  

默认I / O调度程序将数据排队,以最大限度地减少对HDD的搜索,这对SSD来说不是必需的。因此,使用"deadline"调度程序,只确保批量事务不会减慢小事务:安装sysfsutils

echo "block/sdX/queue/scheduler = deadline" >> /etc/sysfs.conf

  
  

(调整sdX以匹配您的SSD)重启或

echo deadline > /sys/block/sdX/queue/scheduler

所以,答案是:none不是noop的别名。 none表示“未使用调度程序”。


相关问答

添加新评论