Chinaunix首页 | 论坛 | 博客
  • 博客访问: 824623
  • 博文数量: 203
  • 博客积分: 2433
  • 博客等级: 大尉
  • 技术积分: 2195
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-05 13:32
文章分类

全部博文(203)

分类: LINUX

2019-10-05 11:30:29

在linux新内核版本中增加了BFQ和Kyber调度器(多队列IO排队机制),要启用这两个新调度器,需要scsi_mod.use_blk_mq启动,
在/etc/default/grub中启动:
GRUB_CMDLINE_LINUX="scsi_mod.use_blk_mq=1(0是关闭)"
并重新生成grub:
grub-mkconfig -o /boot/grub/grub.cfg

另外blk_mq调度系统是不支持grub中的电梯标记,也就是grub中的:
GRUB_CMDLINE_LINUX_DEFAULT="elevator=none"<---是不会生效的

需要使用udev规则,在/etc/udev/rules.d中创建一个scheduler.rules,添加如下:
  1. ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq"<---也可是别的多队列调度器
如果有多个硬盘,可以使用一下规则:
  1. # set deadline scheduler for non-rotating disks
  2. ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0",ATTR{queue/scheduler}="bfq"
  3. # set bfq scheduler for rotating disks
  4. ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="deadline"
  5. # set mq-deadline scheduler for non-rotating nvme-disks
  6. ACTION=="add|change", KERNEL=="nvme[0-9]n1", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="bfq"
如果没有看到单队列调度器,又有场景需要使用的话,需要尝试在boot的时候把scsi_mod.use_blk_mq关了,旧的队列如cfq应该可以看到

至于多队列调度器和单队列调度器的优劣,请自行百度,暂时先写到这里,有问题再更新
阅读(5458) | 评论(0) | 转发(0) |
0

上一篇:提速pacman

下一篇:wps office主题问题

给主人留下些什么吧!~~