摘要: 为了从 Linux 服务器榨取尽可能多的性能,请了解如何更改 I/O 调度器以满足你的需求。 Linux I/O 调度器Linux I/O scheduler控制内核提交读写请求给磁盘的方式。自从 2.6 内核以来,管理员已经能够更改这个调度器,所以他们可以自定义他们的平台以完全适合他们的需要。
为了从 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。据此信息,打开终端窗口并输入以下命令:
cat /sys/block/sda/queue/scheduler
该命令的结果将显示当前运行的调度程序(下图)。
Elementary OS Loki 运行 deadline 调度器。
Elementary OS Loki 运行 deadline 调度器。
更改你的调度器
你可以通过两种方式更改你的调度器:即时或永久。如果你即时更改调度器,它会在重启后恢复到之前的默认调度器。你可能希望首先进行即时更改,以查看哪个调度器能为你的需求带来最佳性能。
说到你要即时改到 noop 调度器。 为此,输入以下命令:
sudo echo noop > /sys/block/hda/queue/scheduler
你可以将 noop 更改为 cfq 或 deadline。
此更改可以在不重新启动计算机的情况下生效。 一旦更改,I/O 调度器将会切换,(希望)你能看到性能提高(再说一次,根据你的需要而定)。
如果要将调度器更改为永久,则必须在 GRUB 配置文件中执行此操作。 为此,请输入 sudo nano /etc/default/grub,然后修改下面的行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
到
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
同样,你可以改变 noop 为任何你需要的调度器。如果你用的是即时修改,则不必重新启动以使新调度器生效。
这些就是修改调度器的方法了。
做出明智的选择
你应该做研究,找出什么调度器最适合你的特殊情况。要了解每个调度器的更多信息,请查看这些 Wiki 页面:CFS、Noop和 Deadline。
原文发布时间为:2017-02-06
本文来自云栖社区合作伙伴“Linux中国”
分享到:
相关推荐
通过调整或定制I/O调度算法,可以更好地平衡系统资源的分配,降低延迟,提升整体性能。 实验结果显示,这些方法能够有效地提升Linux系统在网络I/O性能上的表现。在实际应用中,开发者需要根据系统负载、连接数量...
Anticipatory调度算法曾是Linux 2.6内核的标准I/O调度器。它通过对即将发生的I/O操作进行预测,从而减少磁头移动时间,特别适合顺序读写的场景。 **工作原理:** - **预测机制:** 当检测到I/O操作时,系统会等待一...
Linux内核的设置、硬件架构以及I/O调度器的选择都直接影响到Oracle数据库的性能。本文旨在提供一个逐步的指南,帮助管理员优化Oracle在Linux上的运行环境。 2. 硬件架构与Linux内核 硬件架构是决定Oracle性能的基础...
以下是对四种主要的Linux I/O调度算法的详细说明: 1. **CFQ (Completely Fair Queuing)**:作为Linux内核的默认调度算法,CFQ致力于实现I/O带宽的公平分配。它为每个进程或线程创建单独的队列,并使用时间片进行...
总的来说,选择合适的I/O调度算法对系统的整体性能至关重要,需要根据系统的工作负载和应用场景来决定。例如,数据库服务器通常选择Deadline,因为它对读操作的响应性要求较高,而多媒体服务器则可能更适合使用CFQ,...
例如,调整I/O调度器,如从CFQ切换到NOOP或Deadline,可能会改善特定工作负载的性能。 最后,网络I/O的监控通常需要结合其他因素,如TCP/IP栈的参数调整、网络设备的设置和网络负载。`netstat`、`ss`命令可以帮助...
例如,Linux内核的I/O调度器就采用了混合模型,结合了多种算法的特点。 总之,I/O调度算法是操作系统设计中的核心组成部分,通过合理的调度策略,可以有效提升系统性能,改善用户体验。理解和掌握这些算法,对于...
Linux内核的IO调度器负责管理磁盘I/O操作的顺序和优先级,以优化系统资源的利用,确保数据的高效读写。本手册将深入探讨这一主题,帮助读者理解Linux内核在处理I/O请求时的策略和机制。 首先,我们来了解IO调度的...
在Linux系统中,I/O调度器是至关重要的一个组件,它负责管理磁盘操作的顺序,以优化系统性能。在给定的标题"dm-queue-length.rar_The Number"和描述"queue-length path selector - choose a path with the least ...
而`svctm`如果持续高于`await`,则意味着I/O请求在等待队列中的时间较长,可能存在I/O调度问题。 除了iostat,还可以结合其他工具如vmstat(查看进程、内存、交换空间、CPU活动及I/O等待状态)进行综合分析。例如,...
【Linux服务器性能调整】是关于优化Linux服务器性能的专业技术书籍,由Sandra K. Johnson、Gerrit Huizenga和Badari Pulavarty三位作者共同撰写,并由韩智文翻译成中文。这本书针对的是那些希望提升Linux服务器效率...
I/O性能调优包括使用edquota、quoton、sysctl等工具调整磁盘配额,以及通过修改`boot line:elevator=<ioscheduler>`选择合适的I/O调度器。例如,可以选择NOOP、deadline或CFQ等不同的I/O调度策略,以适应不同工作...
10. **性能调优**:通过对CPU、内存、磁盘I/O等系统的监控,以及对系统参数(如最大文件描述符数、内核调度策略等)的调整,可以进一步优化服务器性能。 这个"LinuxServerCodes"目录中的源码很可能包含了上述各种...
总之,“task_io_accounting_ops.rar_Because...”涉及的关键知识点包括:Linux内核的I/O会计机制、任务的I/O统计、近似计算块的数量方法、I/O调度器、I/O限制策略以及使用这些信息进行系统性能分析和优化。...