happy_fish100 发表于 2022-12-05 10:43

FastCFS在eRDMA与传统网络环境下对比测试分享

FastCFS 是一款强一致性、高性能、高可用、支持百亿级海量文件的通用分布式文件系统,可以作为MySQL、PostgresSQL、Oracle等数据库,k8s,KVM,FTP,SMB和NFS等系统的后端存储。

数据库作为IO密集型软件,对磁盘IO和网络IO性能要求比较高。把数据库跑在分布式文件系统上,必然会碰到网络IO这个性能瓶颈。使用RDMA是消除网络IO瓶颈的有效方法,但使用原生libverbs进行RDMA网络编程,需要对使用socket的网络应用程序做大量改造和适配工作,门槛非常高。

SMC-R(Shared Memory Communication over RDMA)是一种基于 RDMA 技术、兼容 socket 接口的内核网络协议,由 IBM 提出并在2017年捐献给Linux内核。SMC-R可以帮助TCP网络应用程序透明使用RDMA,在网络通信上获得高带宽和低时延。

2021年10月20日的杭州云栖大会上,阿里云发布第四代神龙架构。第四代神龙架构的网络延迟降低80%,同时升级至全新的eRDMA网络架构,是业界首个大规模弹性RDMA加速能力。对于性能如此强悍的RDMA网络,我一直期待有机会体验一下。

我最近终于幸运地获得了第四代神龙架构ECS的公测资格,租用了4台最新的ecs.c8y.4xlarge实例(3副本服务器+1台客户端)通过fio测试FastCFS的读性能,对是否启用弹性RDMA进行性能对比测试:bs=4KB和8并发情况下,随机读IOPS 111,572 vs. 85,693,提升30%;顺序读IOPS 182,861 vs. 145,752,提升25%。注:为了对比测试网络性能,FastCFS服务端和客户端全部使用内存文件系统 /dev/shm。

只有一组3副本服务器的情况下,FastCFS 8并发随机读超过11万IOPS,达到了生产环境数据库的磁盘IO性能要求。在配备NVMe SSD及RDMA网络的情况下,FastCFS完全可以做到低延迟和高吞吐,满足高性能场景下的文件读写性能要求。

启用主网卡的弹性RDMA特性,碰到了一个坑,给大家分享一下。租用ECS的第2步“网络和安全组”, 如果第一次租用当前可用区的ECS(比如华北2的可用区I),上方的网络交换机部分只能选择默认,此时下方的主网卡没有“弹性RDMA接口”这个选项,这种情况下租用的ECS将没有RDMA设备。解决方法:先租用一台第四代神龙架构ECS,阿里云后台会自动创建该可用区的交换机,随即释放这个ECS实例;再次租用时默认就是该区的交换机,此时主网卡设置界面就有“弹性RDMA接口”选项了。

本次测试的相关配置和文档附录:

附1. ecs.c8y.4xlarge配置:16 vCPU(Yitian 710)、32G内存、 最高16Gbps网络带宽

服2. FastCFS运维工具介绍:FastCFS运维工具介绍

附3. 阿里云SMC-R说明:SMC-R是什么,使用方法有哪些_云服务器 ECS-阿里云帮助中心


页: [1]
查看完整版本: FastCFS在eRDMA与传统网络环境下对比测试分享