如何更改Linux I/O调度器来调整性能

系统 Linux 系统运维
Linux I/O 调度器Linux I/O scheduler控制内核提交读写请求给磁盘的方式。自从 2.6 内核以来,管理员已经能够更改这个调度器,所以他们可以自定义他们的平台以完全适合他们的需要。

 [[182879]]

为了从 Linux 服务器榨取尽可能多的性能,请了解如何更改 I/O 调度器以满足你的需求。Linux I/O 调度器Linux I/O scheduler控制内核提交读写请求给磁盘的方式。自从 2.6 内核以来,管理员已经能够更改这个调度器,所以他们可以自定义他们的平台以完全适合他们的需要。

有三个调度器可供选择,每个调度器都有其优点。这些调度器是:

CFQ (Completely Fair Scheduler完全公平调度器)(cfq) :它是许多 Linux 发行版的默认调度器;它将由进程提交的同步请求放到多个进程队列中,然后为每个队列分配时间片以访问磁盘。

Noop 调度器(noop) : 基于先入先出(FIFO)队列概念的 Linux 内核里最简单的 I/O 调度器。此调度程序最适合于 SSD。

截止时间调度器(deadline) : 尝试保证请求的开始服务时间。

当你想要让 Linux 机器发挥***性能时,这可能是你所要做的事情之一。幸运的是,更改 I/O 调度器非常简单。让我告诉你怎么做。

找出你有的调度器

你需要做的***件事是找出哪个调度器正在处理你系统上的 I/O。这是从命令行完成的,你必须知道磁盘的名称。为简单起见,我假设磁盘是 sda。据此信息,打开终端窗口并输入以下命令:

  1. cat /sys/block/sda/queue/scheduler 

该命令的结果将显示当前运行的调度程序(下图)。

Elementary OS Loki 运行 deadline 调度器。

Elementary OS Loki 运行 deadline 调度器。

更改你的调度器

你可以通过两种方式更改你的调度器:即时或***。如果你即时更改调度器,它会在重启后恢复到之前的默认调度器。你可能希望首先进行即时更改,以查看哪个调度器能为你的需求带来***性能。

说到你要即时改到 noop 调度器。 为此,输入以下命令:

  1. sudo echo noop > /sys/block/hda/queue/scheduler 

你可以将 noop 更改为 cfq 或 deadline。

此更改可以在不重新启动计算机的情况下生效。 一旦更改,I/O 调度器将会切换,(希望)你能看到性能提高(再说一次,根据你的需要而定)。

如果要将调度器更改为***,则必须在 GRUB 配置文件中执行此操作。 为此,请输入 sudo nano /etc/default/grub,然后修改下面的行:

  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 

  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop" 

同样,你可以改变 noop 为任何你需要的调度器。如果你用的是即时修改,则不必重新启动以使新调度器生效。

这些就是修改调度器的方法了。

做出明智的选择

你应该做研究,找出什么调度器最适合你的特殊情况。要了解每个调度器的更多信息,请查看这些 Wiki 页面:CFSNoopDeadline

责任编辑:武晓燕 来源: Linux中国
相关推荐

2017-03-25 21:33:33

Linux调度器

2017-09-01 12:26:18

Linux调度器系统

2019-12-02 09:45:45

Linux IO系统

2022-04-23 16:30:22

Linux磁盘性能

2014-07-28 16:47:41

linux性能

2020-06-10 08:28:51

Kata容器I

2024-02-02 11:24:00

I/O高并发场景

2011-01-14 09:25:28

LinuxIO机制

2020-06-03 17:30:42

LinuxIO

2013-05-14 09:31:06

IBM闪存服务器

2011-04-08 17:33:07

Oracle性能

2014-08-19 11:37:50

Linux

2017-01-19 19:14:20

Linux重定向命令

2019-09-12 08:58:26

LinuxUNIX操作系统

2021-02-22 17:06:58

Linux改动代码

2011-02-25 09:16:00

SQLSQL Server IO

2013-07-16 16:46:28

云计算

2016-09-08 14:04:56

云计算

2010-08-20 11:07:07

设置 DB2

2011-04-11 11:32:29

Oracle分区表磁盘IO冲突
点赞
收藏

51CTO技术栈公众号