前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >优化存储性能?你需要关注这些Linux I/O调度程序选项

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

作者头像
小小科
发布2018-05-02 17:22:34
1.4K0
发布2018-05-02 17:22:34
举报
文章被收录于专栏:北京马哥教育北京马哥教育

要优化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并不提供标准配置文件,因此你需要在系统启动脚本中集成它并使其自动运行。

作者:祁同伟 来源:https://yq.aliyun.com/articles/128525?utm_content=m_26167


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马哥Linux运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档