XFS与EXT4 Direct IO写USB性能分析与优化
需积分: 50 156 浏览量
更新于2024-09-04
收藏 65KB TXT 举报
"深入探讨xfs与ext4在direct方式下写USB存储的性能差异与优化"
在Linux内核4.19.67版本中,针对文件系统性能进行了对比分析,特别是关注xfs和ext4在direct I/O模式下写入USB磁盘的性能。通过执行`dd`命令进行基准测试,发现在该环境下xfs的写入速度平均为9.4M/s,而ext4的速度在6.6M/s到8.8M/s之间波动,通常在7.5M/s左右。
1. **xfs与ext4的写入机制差异**:
- xfs使用iomap机制,将数据结构(struct bio)直接提交到block层,这确保了数据以2M连续内存的页形式提交。
- ext4则依赖filemap,并通过fs/direct-io接口提交数据(struct bio),这种方式并未保证数据在内存中的连续性。
2. **性能差异的关键因素**:
- 这种性能差距的关键在于,即使数据大小相同,iomap保证了2M的连续内存,而direct-I/O则不保证,这影响了数据传输效率。
3. **block层的处理**:
- block层通过queue_rq回调函数将数据包装成struct blk_mq_queue_data结构,然后传递给SCSI层。
4. **SCSI层的处理**:
- SCSI层接收到数据后,将其转换为struct scsi_cmnd格式,通过消息方式传递给USB-storage驱动。
5. **数据拆分策略**:
- 尽管block层的缓冲区大小为2M,但在提交到SCSI层(进一步到USB-storage)时,会根据设备配置进行拆分,例如默认按照120K进行拆分。
6. **性能优化点**:
- max_sectors配置对性能有很大影响。将max_sectors设置为4096扇区(等于2M)可以显著提升性能,ext4的写入速度从7.5M/s提升到9.5M/s,xfs则从9.4M/s提升到10.4M/s。
7. **xfs优于ext4的原因**:
- xfs在申请内存页时保证了连续性,这使得DMA(Direct Memory Access)能更高效地运行,从而提高了写入速度。相比之下,ext4不保证内存页的连续性,导致其性能逊色于xfs。
通过这些深入的分析,我们可以理解xfs和ext4在direct I/O模式下的性能差异,并找到优化USB存储写入性能的方法。优化文件系统的配置,特别是max_sectors参数,可以有效地改善直接写入操作的效率。对于需要高写入速度的应用场景,选择xfs或优化ext4的配置可能是有益的策略。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-06-01 上传
2022-09-23 上传
2020-08-11 上传
2022-09-14 上传
2022-09-21 上传
2019-06-24 上传
zhoupeng790305
- 粉丝: 0
- 资源: 1
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查