优化存储性能?你需要关注这些Linux I/O调度程序选项

简介:

要优化Linux性能,IT团队应该检查当前正在使用的I/O调度程序,并评估诸如deadline和完全公平队列(Completely Fair Queuing)这样的替代方案选项。

如果某台Linux服务器性能不佳,通常与存储信道有关。几十年前,还相对容易进行分析,服务器拥有RAID阵列,RAID阵列的顶层存在分区并且Ext2文件系统在分区顶层运行。然而在今天的数据中心,分析存储信道就不那么容易了。

许多现代数据中心的Linux服务器运行在VMware虚拟机管理程序的顶端,与不同类型的存储区域网络(Storage Area Network,SAN)系统相连接。这意味着在进行Linux存储优化过程中要考虑许多因素。

常识上认为,当你在虚拟机管理程序上使用Linux,你不需要做关于存储优化的任何操作,但在很多的情况下并非事实。存储性能取决于许多因素,其中的一个因素便是Linux I/O调度程序,如果它调试正确能给性能带来决定性的影响。

了解不同的Linux I/O调度程序类型

I/O调度程序是决定I/O请求是如何被排序的内核进程。有很多种不同类型的调度程序,如deadline类型、Completely Fair Queuing类型以及noop(无操作)类型。在较早的内核版本中,也存在着预期(anticipatory)调度程序。

大多数系统默认的Linux I/O调度程序是完全公平的队列(Completely Fair Queuing)。有了这个调度器,Linux内核尝试在读写请求之前将它们均匀地分配到存储通道中。大多数的虚拟机管理程序和协同SAN产品也在做同样的事情,所以这一类型的调度程序相对于改进,更可能给特定的负载小的降底。尽管如此,这是最安全的选择,这也是为什么所有的版本都使用它作为默认设置。

许多IT专业人士认为当使用智能存储时,noop调度程序提供最佳的性能。有了这一调度程序,Linux内核直接传输读写请求到存储信道,并将他们重新排序。在大多使用虚拟机管理程序、固态硬盘或SAN的情况下,noop调度程序提供了最好的性能。然而,这可能并不总是这样的,特别是在面向大量写入负载时,使用deadline调度程序可能更有助于底层存储信道。

Deadline I/O调度程序以最高效的方式重新排序来优化写入请求,从而在底层虚拟机管理程序层简化了性能负载。如果您的服务器写入操作很多,deadline I/O调度程序值得一试。

最后,还可能会遇到预期调度程序。这一调度程序在旧的Linux内核中使用,现在已并不常见。在这些较旧的内核上,此调度程序在执行文件存储块时通过执行预读来优化读取请求。

1Set Linux I/O调度程序

管理员可以为指定的磁盘或整个服务器设置I/O调度程序。要为整个服务器进行设置,修改grub配置 file/etc/default/grub。在这一文件中,找到从Linux开始的那行。在某些版本中,Linux后面可能跟着数字。这行内容中包含着所有的内核启动参数。在这一行添加elevator=setting,“setting”的更改需要借助所使用的I/O调度程序进行。改变GRUB的配置文件完成后,运行grub2-mkconfig -o /boot/grub2/grub.cfg将新的设置写入系统,然后重新启动系统。

虽然更改整个系统的Linux I/O调度程序可以在某些特定的工作负载上生效,考虑更改每块磁盘I/O调度程序设置作为一种备选方案。如果服务器有不同的存储负载,不同的负载类型又正在写入不同的设备,则考虑带着这些设置运行测试。

每块磁盘设备的接口文件都有一个带有名字/sys/block/device/queue/scheduler。你可以重复所请求的调度设置推送到这个文件以使其立即生效,例如重复请求:deadline >/sys/block/sda/queue/scheduler。当设置能够被持续更改时,Linux并不提供标准配置文件,因此你需要在系统启动脚本中集成它并使其自动运行。

本文转自d1net(转载)

目录
打赏
0
0
0
0
53
分享
相关文章
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
84 19
|
1月前
|
Linux系统内存使用优化技巧
交换空间(Swap)的优化 禁用 Swap sudo swapoff -a 作用:这个命令会禁用系统中所有的 Swap 空间。swapoff 命令用于关闭 Swap 空间,-a 参数表示关闭 /etc/fstab 文件中配置的所有 Swap 空间。 使用场景:在高性能应用场景下,比如数据库服务器或高性能计算服务器,禁用 Swap 可以减少磁盘 I/O,提高系统性能。
37 3
BPF及Linux性能调试探索初探
BPF技术从最初的网络数据包过滤发展为强大的系统性能优化工具,无需修改内核代码即可实现实时监控、动态调整和精确分析。本文深入探讨BPF在Linux性能调试中的应用,介绍bpftune和BPF-tools等工具,并通过具体案例展示其优化效果。
151 14
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
135 17
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####
Linux内核锁机制深度剖析与实践优化####
本文作为一篇技术性文章,深入探讨了Linux操作系统内核中锁机制的工作原理、类型及其在并发控制中的应用,旨在为开发者提供关于如何有效利用这些工具来提升系统性能和稳定性的见解。不同于常规摘要的概述性质,本文将直接通过具体案例分析,展示在不同场景下选择合适的锁策略对于解决竞争条件、死锁问题的重要性,以及如何根据实际需求调整锁的粒度以达到最佳效果,为读者呈现一份实用性强的实践指南。 ####
Linux操作系统的内核优化与实践####
本文旨在探讨Linux操作系统内核的优化策略与实际应用案例,深入分析内核参数调优、编译选项配置及实时性能监控的方法。通过具体实例讲解如何根据不同应用场景调整内核设置,以提升系统性能和稳定性,为系统管理员和技术爱好者提供实用的优化指南。 ####
深入探索Linux操作系统的内核优化策略####
本文旨在探讨Linux操作系统内核的优化方法,通过分析当前主流的几种内核优化技术,结合具体案例,阐述如何有效提升系统性能与稳定性。文章首先概述了Linux内核的基本结构,随后详细解析了内核优化的必要性及常用手段,包括编译优化、内核参数调整、内存管理优化等,最后通过实例展示了这些优化技巧在实际场景中的应用效果,为读者提供了一套实用的Linux内核优化指南。 ####
135 1
Linux内核中的调度策略优化分析####
本文深入探讨了Linux操作系统内核中调度策略的工作原理,分析了不同调度算法(如CFS、实时调度)在多核处理器环境下的性能表现,并提出了针对高并发场景下调度策略的优化建议。通过对比测试数据,展示了调度策略调整对于系统响应时间及吞吐量的影响,为系统管理员和开发者提供了性能调优的参考方向。 ####
Linux 程序 Linux编译 Linux编译过程的来龙去脉
Linux 程序编译过程的来龙去脉 大家肯定都知道计算机程序设计语言通常分为机器语言、汇编语言和高级语言三类。高级语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,另一种是解释型,因此我们基本上将高级语言分为两大类,一种是编译型语言,例如C,C++,Java,另一种是解释型语言,例如Python、Ruby、MATLAB 、JavaScript。
1245 0