如何更改 Linux 的 I/O 调度器

Linux 的 I/O 调度器是一个以块式 I/O 访问存储卷的进程,有时也叫磁盘调度器。Linux I/O 调度器的工作机制是控制块设备的请求队列:确定队列中哪些 I/O 的优先级更高以及何时下发 I/O 到块设备,以此来减少磁盘寻道时间,从而提高系统的吞吐量。

目前 Linux 上有如下几种 I/O 调度算法:

  • noop – 通常用于内存存储的设备。
  • cfq – 完全公平调度器。进程平均使用IO带宽。
  • Deadline – 针对延迟的调度器,每一个 I/O,都有一个最晚执行时间。
  • Anticipatory – 启发式调度,类似 Deadline 算法,但是引入预测机制提高性能。

查看设备当前的 I/O 调度器:

# cat /sys/block//queue/scheduler

假设磁盘名称是 /dev/sdc:

# cat /sys/block/sdc/queue/schedulernoop anticipatory deadline [cfq]

如何改变硬盘设备 I/O 调度器

(adsbygoogle = window.adsbygoogle || []).push({});

使用如下指令:

# echo {SCHEDULER-NAME} > /sys/block//queue/scheduler

比如设置 noop 调度器:

# echo noop > /sys/block/sdc/queue/scheduler

以上设置重启后会失效,要想重启后配置仍生效,需要在内核启动参数中将 elevator=noop 写入 /boot/grub/menu.lst:

1. 备份 menu.lst 文件

cp -p /boot/grub/menu.lst /boot/grub/menu.lst-backup

2. 更新 /boot/grub/menu.lst

将 elevator=noop 添加到文件末尾,比如:

kernel /vmlinuz-2.6.16.60-0.91.1-smp root=/dev/sysvg/root splash=silent splash=off showopts elevator=noop

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DT乱“码”

Spring注解@Component、@Repository、@Service、@Controlle

@Service用于标注业务层组件 @Controller用于标注控制层组件(如struts中的action) @Repository用于标注数据访问组件,即D...

21990
来自专栏python3

socket作业——ftp登录程序

3.登录成功之后,调用客户端,将用户名和密码(第一层摘要算法加密),使用TCP发送给服务器

10210
来自专栏木头编程 - moTzxx

wampServer 启动报错

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

17210
来自专栏张首富-小白的成长历程

CentOS6安装bash-compltion命令补全增强包

昨天帮一个朋友安装CentOS6的命令增强补全包bash-completion,通过扩展的yum源一直安装不上去,然后就想到先把rpm包下载下来在进行安装 先配...

18850
来自专栏java系列博客

【redis】安装与运行:Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

62350
来自专栏WindCoder

ubuntu14.04安装了im-switch后系统设置中不见了语言支持

im-switch与语言支持不兼容,两者只能取其一,安装其一,若另一个存在则会被卸载。

19010
来自专栏散尽浮华

Mac下通过VMware Fusion安装centos虚拟机操作记录

下面介绍下利用VMware Fusion工具在Mac上安装centos虚拟机的做法: 1)下载VMware Fusion工具 下载地址(包括注册码):http:...

46250
来自专栏应兆康的专栏

每天一个Linux命令(3)——pwd

pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全目录使用/分割。第一个/表示根目录,最后一个目录是当前目录...

34760
来自专栏我的博客

mac下mcrypt扩展解决

如果使用php自带的加密算法,其中需要这个mcrypt扩展,各种编译通不过。。后来干脆下在一个 【点击下载mcrypt.so】 然后修改 sudo vi /et...

28560
来自专栏F_Alex

安装RabbitMQ编译erlang时,checking for c compiler default output file name... configure:error:C compiler c

37630

扫码关注云+社区

领取腾讯云代金券