当前位置: 首页 > news >正文

Linux存储--磁盘I/O调优方法

磁盘I/O性能是决定计算机整体性能的关键因素之一,磁盘I/O性能瓶颈常常会影响文件系统、数据库、虚拟化平台等应用的响应时间,因此磁盘I/O调优是计算机系统运维工作中的重要任务。

一、硬件调优

1. 使用固态硬盘SSD,这种类型的硬盘较传统机械硬盘具有更快的随机I/O性能和更高的IOPS,较适合在数据库、虚拟化、高并发等应用场景。

2.配置硬件RAID(磁盘冗余阵列),提高磁盘I/O性能。

3.增加硬件层面的缓存,比如存储控制器的缓存可以有效提升读写性能;配置服务器RAM作为I/O缓存,减少直接访问磁盘的频率。

二、文件系统调优

不同文件系统具有不同的I/O性能特点,选择适合的文件系统对于优化磁盘I/O也是非常关键的,一些主要的文件系统如下:

1. ext4:是linux系统通用并且常见的一种文件系统,支持大文件和日志功能,其在大量小文件的场景也非常出色,使用于操作系统盘、文件共享等应用场景。

2. xfs:适合处理大文件、大容量、高并发的场景,其写性能也非常出色,尤其适用于操作系统盘、审数据库、流媒体、虚拟化等场景。

3. Btrfs:具有快照、压缩、卷管理功能,适合现代存储应用。

三、文件系统挂载选项调优

在使用mount命令挂载磁盘分区文件系统或者在/etc/fstab文件持久化磁盘分区挂载配置的时候,可以通过配置挂载参数提升文件系统的I/O性能。比如一些参数:

1. Noatime:禁用文件访问时间更新,减少笔不要的磁盘写操作。

2. Nodiratime:不更新目录访问时间,搭配noatime 使用

3. async(默认):数据写操作前先放入缓存,后台异步数据落盘,性能高;但又断电丢数据风险。

4. Barrier=0:禁用写障碍,可以提高性能,但有数据损坏风险,最好配合UPS / 电池RAID 卡。

5. ro:只读挂载,适合没有写I/O的场景,比如数据备份盘等。

6. nodev:挂载文件系统不识别块设备,提升文件系统安全性及业务目录使用。

四、操作系统内核参数调优

1.结合业务场景,优化和配置适合的内核块层I/O调度器在前期的《Linux存储-内核存储框架概念》讲述linux文件系统架构提到内核块层的作用,通过调整I/O调度优化磁盘性能。

可以使用命令:Cat /sys/block/sdb/queue/scheduler查看(sdb结合实际修改)

内核老版本的可能有如下输出:

内核新版本的可能有如下输出:

  • Noop:适合固态SSD,因为SSD不需要机械寻道;适合SSD、NVMe、数据库等场景。

  • Deadline:适合低延时、高负载的系统,适合数据库应用场景。

  • mq-deadline:拆分读/ 写双队列,为每个IO 设置超时时间;适合机械HDD、数据库、随机读写业务等场景。

  • cfq:完全公平队列为所有进程分配相等的磁盘I/O宽带;适合通用的场景都可以,但性能较为一般。

  • anticipatory:预期调度,在cfq 基础上会短暂等待相邻IO,适合单进程顺序读写机械盘,现在基本淘汰。

  • kyber:轻量化多队列调度,分读/写优先级,控制队列深度,延迟比mq-deadline 更低;适合高速NVMe、 SSD、低延迟的时序数据库、日志记录等业务。

配置块层I/O调度器有临时方法和持久化方法:

临时方法:

#切换为none(SSD/NVMe推荐)echo“none” > /sys/block/sda/queue/scheduler#切换为kyber(高速SSD低延迟)echo“kyber” > /sys/block/sda/queue/scheduler

持久化方法:​​​​​​​

修改grub配置,内核启动参数添加:elevator=mq-deadline重新编译grub:grub2-mkconfig -o /boot/grub2/grub.cfg

也可以通过创建udev规则文件,比如在/etc/udev/rules.d/目录创建文件:XX-自定义名称.rules(比如60-disk-scheduler.rules,可以自取名称,但udev规则建议前两位数字块设备配置在60-70之间)。

在udev规则文件中添加如下内容,比如:​​​​​​​

#机械盘sdb使用mq-deadlineACTION=="add|change", KERNEL=="sdb", SUBSYSTEM=="block", RUN+="/bin/sh -c 'echo mq-deadline > /sys/$devpath/queue/scheduler'"# SSD盘sdd使用noneACTION=="add|change", KERNEL=="sdd", SUBSYSTEM=="block", RUN+="/bin/sh -c 'echo none > /sys/$devpath/queue/scheduler'"

2.调整swap的swappiness值

内核参数swappiness值是控制系统倾向使用交换分区swap的程度,取值范围0 ~ 100。值越小表示系统尽量使用物理内存,减少内存和swap之间的数据交换;值越大,反之,操作系统默认配置的值为60。如果内存足够大(32G以上),建议将swappiness值修改该为10。​​​​​​​

临时修改方法:echo“10” > /proc/sys/vm/swappiness永久修改该方法:修改内核文件/etc/sysctl.confecho “vm.swappiness= 10” >> /etc/sysctl.confsysctl-p (不用重启系统)

五、总结

以上内容大概讲述了提升linux系统磁盘性能的一些常用的思路和方法,主要是结合业务需求场景选择磁盘和文件系统类型以及从内核的一些通用参数适配做些修改。但是计算机系统的I/O提升所需的优化方法不限于这几种,比如内存缓存的配置、RAID存储、分布式存储等,还需要具体结合实际场景进行规范化、系统化的优化配置。

http://www.jsqmd.com/news/1034046/

相关文章:

  • MyFramework:CommandSystem 命令系统的实现解析
  • 10分钟搞定黑苹果:OpCore-Simplify图形化OpenCore配置工具终极指南
  • Windows系统安装Silvaco TCAD 2018完整指南:从环境配置到故障排查
  • 终极解决方案:如何让魔兽争霸3在现代Windows系统完美运行
  • 解锁Unity全功能体验:UniHacker如何实现跨平台破解方案?
  • 2026年不错的GEO优化服务商用户力荐 - myqiye
  • 暗黑破坏神2存档修改器终极指南:打造完美角色的完整教程
  • 脉冲神经网络与事件视觉的自监督学习新范式
  • 微信评选投票小程序怎么弄,西瓜评选+云帆投票+腾讯投票,投票平台深度对比测评 - 投票小程序
  • 旋转夹爪怎么选型?2026年主流旋转夹爪生产厂家盘点 - 品牌深度评测
  • 机器人夹爪有哪些选型技巧?2026年通用机器人夹爪品牌参考 - 品牌深度评测
  • 有实力的劳动纠纷律师推荐,炜衡律所刘纪伟团队 - myqiye
  • Windows 11 26H1预览版部署与开发环境配置全攻略
  • 2026 扬州全域彩钢瓦翻新修缮四大权威企业深度测评|金属屋面防水除锈喷漆 TOP4 榜单 + 厂房业主专属避坑全指南 - 本地便民网
  • 2026 江苏镇江全域彩钢瓦修缮四大权威企业深度测评|金属权威企业深度测评|金属屋面除锈防水喷漆 TOP4 榜单 + 厂房业主专属避坑全指南 - 本地便民网
  • 双黑洞系统GRMHD模拟:原理、挑战与应用
  • 从WinError 10061到LangChain安装成功:代理、防火墙与网络环境排查全攻略
  • 2026 江苏盐城市全域彩钢瓦修缮公司 TOP4 权威测评|沿海盐雾专用翻新防水服务商优劣对比 + 厂房业主专属避坑全攻略 - 本地便民网
  • 7天打造你的科研知识库:Obsidian终极配置指南
  • 力控夹爪选型小贴士:2026年专业力控夹爪生产厂家推荐 - 品牌深度评测
  • 如何快速打造你的JavaScript智能机器人:Stack-chan全功能指南
  • 可复现性危机:从环境漂移到知识断层的系统性解法
  • 如何利用免费云资源搭建属于自己的Web前端学习沙盒
  • 旋转夹爪如何找优质厂商?2026年主流旋转夹爪生产厂家名单 - 品牌2026
  • Python字节码逆向工程:新一代pycdc工具深度解析与架构设计
  • 百日筑基篇—— ggplot2八大要素实战拆解(R语言可视化进阶)
  • 2026免费录音转文字手把手教程:无限制网页版、长音频免费转换一键搞定
  • 3分钟掌握VoiceCraft:AI语音编辑如何重塑内容创作工作流
  • 向量引擎 API 中转站怎么选?正规、稳定、企业级向量接口的完整选型指南
  • 隐形车衣哪家好?盐城壹+车库,用心服务,品质至上 - myqiye