Linux软件raid-10性能不佳
我有一台带有8通道LSI SAS3008控制器芯片的机器,并且单独的驱动器测试显示我可以以174 MB /秒和193 MB /秒的速度写入任何磁盘或所有磁盘,并具有持续的写入速度:
这是命令dd的输出if = / dev / zero of = / dev / mapper / mpath?p1 bs = 1G count = 100 oflag =直接与所有12个磁盘并行运行: 107374182400 bytes (107 GB) copied,556.306 s,193 MB/s 107374182400 bytes (107 GB) copied,566.816 s,189 MB/s 107374182400 bytes (107 GB) copied,568.681 s,578.327 s,186 MB/s 107374182400 bytes (107 GB) copied,586.444 s,183 MB/s 107374182400 bytes (107 GB) copied,590.193 s,182 MB/s 107374182400 bytes (107 GB) copied,592.721 s,181 MB/s 107374182400 bytes (107 GB) copied,598.646 s,179 MB/s 107374182400 bytes (107 GB) copied,602.277 s,178 MB/s 107374182400 bytes (107 GB) copied,604.951 s,177 MB/s 107374182400 bytes (107 GB) copied,605.44 s,177 MB/s 但是,当我将这些磁盘放在一起作为软件raid 10设备时,我的写入速度大约为500 MB /秒.我希望得到大约两倍,因为同时访问这些磁盘没有任何惩罚. 我注意到md10_raid10进程,我假设软件raid本身接近80%,一个核心始终处于100%等待时间,0%空闲.然而,哪个核心发生了变化. 此外,当使用缓冲区缓存写入已安装的EXT4文件系统而不是使用oflag = direct来绕过缓存时,性能会进一步下降.磁盘报告25%忙(根据munin监控)但磁盘显然没有运行热,但我担心md10设备本身可能. 关于下一步该怎么做的任何建议?我正在尝试硬件raid 10配置进行比较,虽然我似乎只能构建一个10磁盘单元 – 也就是说,我希望得到900 MB /秒的写入持续.当我发现更多时,我会更新这个问题. 编辑1: 如果我在紧密循环中使用dd命令写入安装在该设备上的ext4分区,并且我不使用缓冲区缓存(oflag = direct),我可以在峰值和855 MB /秒时达到950 MB /秒持续对挂载标志进行一些改动. 如果我也同时使用iflag = direct读取,我现在可以获得480 MB /秒的写入速度和750 MB /秒的读取速度. 如果我在没有oflag = direct的情况下编写,那么使用缓冲区缓存,我得到230 MB /秒的写入和1.2 MB /秒的读取,但机器似乎非常迟缓. 所以,问题是,为什么使用缓冲区缓存会严重影响性能呢?我已经尝试了各种磁盘排队策略,包括在驱动器级别使用’noop’并在适当的多路径dm设备上放置’deadline’或’cfq’,或者在所有的最后期限,或者在dm和后备驱动器的截止时间上没有.看起来后备驱动器应该没有,并且多路径设备应该是我想要的,但是这根本不会影响性能,至少在缓冲区缓存情况下如此. 解决方法
编辑:
您的dd oflag =直接观察可能是由于电源管理问题.使用PowerTOP查看CPU的C状态是否在写入负载下经常切换到C1以上.如果是,请尝试调整PM以确保CPU不会睡眠并重新运行基准测试.请参阅您的发行版文档,了解如何执行此操作 – 在大多数情况下,这将是intel_idle.max_cstate = 0内核引导线参数,但是YMMV. O_DIRECT写入和缓冲写入之间的巨大差异可能是由于: >当使用O_DIRECT时,CPU不会被发送到C3睡眠或 废弃的答案: 这看起来非常像是由md中的单个线程引起的瓶颈. 推理 > controller’s data sheet承诺6,000吞吐量 虽然2013年多线程RAID5校验和计算have been committed to 要尝试的事情 >多个带dd的写作线程,只是为了看它是否有任何改变 FWIW,您很少(如果有的话)会在带宽机械存储介质上看到写入性能达到峰值(特别是对于非CoW文件系统).大多数情况下,您将受到寻道时间的限制,因此只要符合您的最低要求,峰值带宽就不应该受到高度关注. 1如果你做ZFS,你应该优化你的测试方法,因为将全零块写入ZFS数据集可能是任意的快速.如果为数据集启用了压缩,则不会将零写入磁盘,而只是链接到全零块. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 增加星号守护程序的文件ulimit
- linux-kernel – 从FIQ中断处理程序访问内核驱动程序数据失
- 在Linux 3.x上挂钩sys_execve()
- 确保所有CORE Perl模块都安装在Oracle Linux上
- linux – 如何使用shell命令来查找带有排除项的文件和文件夹
- 将SELinux日志格式从Epoch转换为Normal
- macos – 在awk字段分隔符更改后重新评估记录中的字段
- linux – 在内核模块中获取文件系统挂载点
- c – Ubuntu 10.04,MAP_HUGETLB与MAP_SHARED一起使用时出
- linux – 显示rsync的总进度:是否可能?