IPFS技术 | Filecoin优化实战系列之一:网络I/O传输优化

北京时间12月12日凌晨2点,万众瞩目的Filecoin测试网上线。无数精彩大戏上演,这里就不多说了。业内人士每天都盯着官方提供的矿工算力排行,围绕这个排行榜,展开了一轮又一轮的较量,扣人心弦。为了避免矿机厂商的无限制刷榜的恶性竞争,协议实验室把这个排行榜给取消了。的确,这个排行榜仅仅是用于给大家展示测试网的一些数据,并不能代表太多内容,虽然一定程度上能表现出厂商的技术水平和应对能力,但完全不代表矿机的性价比。因为你并不知道每一个节点后面要投入多少资金。

不过,看不到这个排行榜,还真的不习惯。中国程序员已经习惯了996甚至007的生活,平时除了写代码、提代码、调代码,也没有什么别的业余爱好。刷这个排行榜,似乎可以成为大家比拼的一项运动。既然电竞项目能被国家承认,Filecoin刷排行,我认为也可以被列入竞技项目之一,甚至可以开展各种分项奖:最快上榜、最高算力、最高出块率、无GPU最高算力、单节点最强算力……理论上想要多少名目,就可以列出多少名目。

言归正传。Filecoin本身是一个伟大的项目。伟大的项目一定是靠技术说话,而不是靠商业宣传。虽然它有很多不足,但它无疑开创了存储领域的一个新时代。伟大的项目一定需要更多的公司和更多的人参与。协议实验室的开发人员专注于核心实现,也希望更多的团队能够一起来改进它。储迅(StorSwift)作为一家一直在存储行业耕耘的公司,也在尽全力参与Filecoin项目,为生态贡献自己的技术力量。

从智慧城市到广电网络的存储,从HPC存储到AI存储,我们的优势是对存储的性能进行深度优化。其中,性能优化的核心就是磁盘I/O优化和网络I/O优化。我们团队在存储行业做了十几年,其实每天做的事情就是这两点。“优化”就两个字,但投入的成本远超想象。

Filecoin测试网上线,厂商为了挤到排行榜上面,纷纷采用集群模式,采用一个主节点带多个远程seal worker节点的模式,这样才能把所有的算力累加到主节点上面,处于更有利的排名。但行业的关键点并不在于刷排名,而在于到底能做多少优化,能够实现更高的性价比。比如,测试网的程序一跑,问题就来了,发现远程工作的worker节点,会和主节点之间传递大量的数据。其数据量大得惊人。以1GiB sector为例,简单总结如下:

  1. 主节点把1GiB大小的sector staging数据,通过网络传给seal worker节点。
  2. Seal worker节点对其进行precommit的计算,生成10GiB的cache数据和1GB的sealed数据,psco数据通过接口返回,push传回给主节点。
  3. Sector在进行commit操作的时候,又从主节点把上一次push上去的11GiB数据(1GiB的sealed数据和10GB的cache数据)拉回来到seal worker节点(可能是另外一个节点)。
  4. Seal worker节点commit完成,接口返回proof数据,同时把2GiB左右的新的cache数据push给主节点。

简单来讲,为了存储1GiB数据,在网络中,需要传递的数据有20多GiB。如把文件存放在网络文件系统中,所需要的网络开销更大。

如果要切换成32GiB的sector,那网络开销……可想而知!

来一点直观点的worker节点资源利用图:

IPFS技术 | Filecoin优化实战系列之一:网络I/O传输优化

大家可以看看,有两个时间段,系统就在那里闲置着。其实它也不是想罢工,而是在传输那些巨大的数据量。花费这么多时间在网络传输上面,不仅降低了效率,也浪费了投资。【注:当然有另外的方法可以进行资源的并发利用,但是另外一个话题。】

这个问题在12月12日就被我们的工程师分析定位,很快做出了解决方案。方案的细节大家可以看代码,简单来讲,就是优化了上面步骤2和3的传输,让precommit和commit都派发到一个节点上面跑。

IPFS技术 | Filecoin优化实战系列之一:网络I/O传输优化

也许这种模式不适合主节点和worker节点由不同矿工持有的情况,但我相信现在应该没有人这么做。运行了几天之后,我们觉得相对稳定了,就把它作为补丁提交给了协议实验室:

https://github.com/filecoin-project/lotus/pull/971​github.com

看看改进之后的效果图:

IPFS技术 | Filecoin优化实战系列之一:网络I/O传输优化

效果很明显吧?用实验室的机器实测,主节点为64GB内存,worker节点就随机挑选老机器,16-32GB内存的都有,机器数量10来台,1天多时间可以上榜单。当然,现在榜单取消了,仅供参考。

这个只是优化的一部分。网络上面的I/O优化还很多。除此之外,还有磁盘的I/O优化。每一项优化,都很烧脑,但想明白了,也就是那么一回事。

分布式存储系统对于团队的开发能力和运维能力要求非常高。同时,这个领域需要更多的人参与,才能把它做好做大。所以,对于这些技术优化细节,我们也乐意于分享。其中很可能有一些错误之处,希望大家指正。

作为区块链信息平台,本站所发布文章仅代表作者个人观点,与中文资讯网(www.ipfsnews.cn)立场无关。

文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

如若转载,请注明出处:https://www.ipfsnews.cn/2757.html

发表评论

登录后才能评论