知识卡片
三种网络实现的稳定性与性能权衡
内容
Ceph 网络层同时维护三套实现,彼此不共享代码而是共用同一套抽象接口:Simple 给每个连接分配一对收发线程,实现简单、最成熟稳定,但大规模集群下连接数一多会产生大量线程,消耗 CPU;Async 用事件驱动的 IO 多路复用(更省线程资源,是现代网络库的主流做法),但当时还不够稳定;XIO 依赖第三方库 accelio 并能支持 Infiniband,但同样不成熟。三者并存说明”性能更优的方案”不会自动替代”更稳定的方案”,工程上往往需要让新旧实现共存过渡,而不是一步切换。
参考来源
《Ceph源码分析》第3章《Ceph网络通信》