对于每种组合,我们运行相同的测试分别在 BTRFS, XFS, 或者 EXT4的osd 文件系统上。每次测试都会重新格式化文件系统以及重新运行mkcephfs以确保个先前的测试碎片不会影响后面的测试结果。请记住,试图使用这些结果来判断一个ceph集群是如何执行将是一个误导。每个文件系统在不同的阶段可能运行的机制完全不同。尽管如此,每个测试重新格式化文件系统是必要的,以确保不同的测试之间比较公平。每个文件系统的格式化命令和挂载选项如下:
4KB RADOS BENCH 写入测试结果
好吧,希望这个图表展示是不言而喻的,但如果不是,基本上这里的想法是,我们有3个样品为每个文件系统,大量的不同的参数,我们画一个彩色圈表示性能高于或低于默认配置。可能这里最需要注意的是当 filestore flusher 显示启用的时候,BTRFS和XFS的性能变低。除此之外,看起来是授权 journal_aio_true 性能提升最为明显。
就像16个并发操作的结果一样,当启用filestore flusher 的时候BTRFS和XFS性能变低。授权 Journal AIO依然性能提升最为明显。在256个并发操作的情况下,我们可以看到,增加并发操作可以提升性能,减少并发数统一会降低性能。
4KB RADOS BENCH 读取测试结果
在这里启用 flusher 的性能依然表现不佳,这明显地降低了XFS和EXT4文件系统的读取性能。禁用调试看起来和增加并发线程操作数一样对提升性能有帮助。
这一点上,我们非常确定,启用flusher对小IO读取性能一点帮助都没有。禁用调试看起来依然有积极作用,这可能对大量的小IO操作生产的大量消息日志处理很有帮助。有趣的是增加并发操作数似乎降低了EXT4文件系统的性能,否则我们就可以得出一个规律,越多的并发操作数,性能越高。还要注意有多少不同的参数似乎在这些结果增加XFS的性能。我有一种感觉,默认的配置对XFS文件系统来说,性能是最好配置性能和最差配置性能的平均水平。