FastCFS在eRDMA与传统网络环境下对比测试分享
Posted Huazie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastCFS在eRDMA与传统网络环境下对比测试分享相关的知识,希望对你有一定的参考价值。
FastCFS在eRDMA与传统网络环境下对比测试分享
引言
FastCFS 是一款强一致性、高性能、高可用、支持百亿级海量文件的通用分布式文件系统,可以作为 MySQL、PostgresSQL、Oracle 等数据库,k8s,KVM,FTP,SMB 和 NFS等系统的后端存储。
RDMA
数据库作为 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 运维工具介绍
附3. 阿里云 SMC-R 说明:SMC-R 是什么,使用方法有哪些_云服务器 ECS-阿里云帮助中心
以上是关于FastCFS在eRDMA与传统网络环境下对比测试分享的主要内容,如果未能解决你的问题,请参考以下文章
evpp性能测试: 与Boost.Asio进行吞吐量对比测试