做网站大约多少钱,专业微信网站建设,wordpress首页怎么打开很慢,node可以做电商网站么EuroSys 2022 Paper 分布式元数据论文汇总
问题
在不同的工作负载下#xff0c;没有单一的Linux文件系统在普通SSD上始终表现良好。我们将一个完备的文件系统定义为在各种微基准测试和应用程序中#xff0c;没有一个工作负载的性能低于最佳文件系统性能的30%#xff0c;并…EuroSys 2022 Paper 分布式元数据论文汇总
问题
在不同的工作负载下没有单一的Linux文件系统在普通SSD上始终表现良好。我们将一个完备的文件系统定义为在各种微基准测试和应用程序中没有一个工作负载的性能低于最佳文件系统性能的30%并且大多数工作负载实现至少85%的最佳文件系统性能。在普通SSD上没有一个文件系统是完备的。 现有文件系统局限性 BetrFS的问题 顺序写入和过多的文件数据拷贝数据写入时总是在每个级别上存储在Bε树中数据被刷新到内存中树的每一级时也被复制到一个新的页面中当数据写入ext4时它会被再次复制。类似的复制发生在读取路径上。 小写和双重日志。例如重命名操作会产生sync()导致对ext4的小写。在BetrFS和ext4上都需要记录日志导致2倍的开销。 顺序读取和预读。发现VFS级别预读不太适合BetrFS的较低级别即从ext4中读取大的Bε树节点因为启发式算法只在KB的阶上操作而Bε树的叶节点是4MB。理想情况下在处理当前4MB时应该预取整个下一个叶和任何其他祖先节点应用消息并具体化下一个叶子的视图。 文件创建和存在性检查。创建文件时需要先检查文件是否存在有大量创建小文件的操作时会产生大量单个消息破坏了BetrFS的批处理思想。 递归删除和范围消息。范围删除在HDD上足够快但在SSD上执行递归目录删除时会成为瓶颈。 小写入和缓冲区大小调整。将BetrFS从HDD移动到SSD时内存管理是一个关键的瓶颈因为在管理内存中的Bε树消息时很难预测缓冲区大小。例如从父级到子级的刷新可能会填充子级的缓冲区并且子级可能需要进一步刷新到孙级。在这种级联刷新中子级可能会临时分配一个比它在磁盘上最终需要的更大的内存缓冲区来保存这些消息直到刷新到孙级。此问题主要影响发出小写入的工作负载而小写入又会在刷新期间序列化更多消息。
挑战和本文优化
这篇论文展示了通过在BetrFS上引入一组优化可以构建一个适用于普通SSD的单一完备文件系统。BetrFS在硬盘HDD上是一个完备的文件系统在最差情况下与最快的Linux文件系统相匹配在最好情况下性能提高了两个数量级。 整合层次结构。BetrFS的Bε树堆叠在ext4之上使用ext4作为块分配器这种堆叠在HDD上成本可接受但在SSD上不可接受。本文提出了一种简化的底层存储结构用于更快设备上的内核中的写优化键值存储。在许多情况下为了明确各层次之间的工作分工需要修改键值存储以不同的方式实现功能例如将预读取移到键值存储层。在其他情况下例如元数据缓存VFS结构是专业且有效的。对BetrFS的VFS交互进行微小的更改可以更有效地批处理元数据更新并更好地经济地进行Bε树查询。总的来说这些改变使得顺序写入吞吐量比BetrFS v0.4提高了4倍grep时间减少了41%。 键空间范围作为第一类基元。本文提出了一些针对于键空间中连续的键值对集合的范围操作的优化。从硬盘转移到固态硬盘后范围操作对CPU的要求太高无法跟上更快的设备。本文为范围操作提供了额外的优化以及对VFS缓存行为的简单更改以消除冗余查询。这些优化加速了递归删除的速度使得BetrFS v0.6在这个工作负载上与其他文件系统相媲美。 协同内存管理。本文描述了对写优化键值存储所需的大型缓冲区进行协同内存管理的策略。为了将小的更新聚合到大的I/O中写优化键值存储必须能够高效地分配和可调整大小的缓冲区这些缓冲区的大小在几百千字节到几兆字节之间因为更新的聚合方式很难在分配时准确预测缓冲区的大小。然而Linux内部的内核内存分配器主要针对页面或小对象进行了优化而不是几兆字节级别的缓冲区。同样动态调整大缓冲区的内核映射可能很昂贵涉及到跨核心的TLB终止。通过采用新的内存管理策略BetrFS v0.6在各方面都提高了性能包括4KiB和4B随机写吞吐量分别比BetrFS v0.4强大的性能提高了25%和31%。 VFS和键值存储集成。本文描述了在VFS页面缓存和写优化键值存储之间共享版本化数据写时复制的策略。我们的设计支持在内存中跟踪数据块的多个版本而不妨碍写入。这个设计通过引用有效地将页面通过键值存储的层次结构进行聚合。相对于BetrFS v0.4顺序写吞吐量提高了6倍将性能提高到距离SSD文件系统上最快的顺序写实现不到15%的距离。从高层次来看这个策略可以看作是使用内核的页面缓存作为文件内容的写时复制行缓存。
我们优化后的BetrFS不仅是完备的而且在一系列微基准测试中要么是最快的要么在最快的通用Linux文件系统上处于15%以内。这些优化在最佳情况下将随机写入吞吐量提高了6倍与最快的SSD文件系统相比。在最差情况下我们的文件系统与其他基准文件系统性能相近。这些改进可以转化为应用层的收益例如与其他普通文件系统相比BetrFS上的Dovecot邮件服务器和Linux源代码的rsync分别显示了1.13×和1.8×的加速。
开源代码GitHub - oscarlab/betrfs at v0.6
实验
实验环境4核3.00 GHz Intel Xeon E3-1220 v6 CPU32 GB RAM的PowerEdge T130。SSD是250 GB的三星EVO 860 SSD具有512字节的页面大小和12 GB的写缓存我们测量用于读取的567MB/s的峰值原始顺序带宽。对于写入当数据大小小于12 GB时峰值带宽为502 MB/s而当数据大小大于12 GB时则降至392 MB/s我们将其归因于设备内部操作。
数据集microbenchmark、应用程序、FileBench[32]
实验对比吞吐量、延迟
总结
目标是设计在各种不同工作负载下使文件系统在SSD上始终性能良好。作者对BetrFS进行了详细的分析将BetrFS从HDD迁移到SSD会面临6个问题顺序写入和过多的文件数据拷贝小写和双重日志顺序读取和预读文件创建和存在性检查递归删除和范围消息小写入和缓冲区大小调整。
根据分析作者在4个方面进行优化整合层次结构提出了一种简化的底层存储结构用于SSD上的内核中的写优化键值存储键空间范围作为第一类基元提出了一些针对于键空间中连续的键值对集合的范围操作的优化协同内存管理描述了对写优化键值存储所需的大型缓冲区进行协同内存管理的策略VFS和键值存储集成描述了在VFS页面缓存和写优化键值存储之间共享版本化数据写时复制的策略。