我是一名门罗币爱好者,想运行自己的节点来支持门罗币网络。这个问题可能看起来微不足道,甚至可能很愚蠢,但我还是想试试运气。

作为系统管理员,我一直认为互联网 ADSL 速度比存储写入速度慢。

然而,尽管有这些知识,我还是看到网上很多用户声称,如果你打算开始运行自己的节点,最好选择 SSD 作为区块链的存储介质,而不是 HDD,因为 SSD 的写入速度高于 HDD。

虽然我知道 SSD 的写入速度确实比 HDD 的写入速度高得多,但据我所知,第一次下载完整的区块链时,花费这么长时间的瓶颈不是区块链写入介质的写入速度,而是下载数据的互联网速度。

因此,理论上,不应该区分使用 HDD 还是 SSD,因为瓶颈在于数据来源的互联网。

或者,更详细地说,我的理解是,将数据写入存储器的缓冲区位于 RAM 中的某个位置,并且具有动态大小。新的区块链数据来自网卡,因为区块链是从互联网上的一些对等点下载的,并被添加到这个 RAM 缓冲区中,而旧数据则不断地从这个缓冲区顺序写入存储器。鉴于我假设 ADSL 网络的下载速度比传统 HDD 或 SSD 的写入速度慢,最终这会导致不平衡,从而导致缓冲区最终被完全写入,因为从网络到存储介质的数据用完了,因为它的写入速度比输入速度快。然后,该过程将不得不等待新数据从互联网进入才能继续写入。实际上,网速慢是一切停滞的原因。

我认为,HDD 和 SSD 之间的写入速度差异唯一起作用的情形是,如果这一假设不成立,并且互联网速度高于 HDD 的写入速度,那么不平衡就会朝另一个方向倾斜。但这与我对硬件的了解完全相反。

我的假设是否错误?如果错误,您能解释一下吗?

为了使这个问题更清楚、更容易回答,假设互联网连接是通过标准以太网电缆进行的(我不想深入讨论为什么无线互联网本质上比以太网电缆互联网慢。这不是这篇文章的重点)

1

  • 分析您的应用程序并找出造成其瓶颈的资源。


    – 


最佳答案
1

在我看来,您假设写入区块链将是一个不间断的线性过程。您为什么会做出这样的假设?区块链将从其对等体中以非线性的方式检索;您将在回填历史区块的同时接收当前区块,并且历史区块至少在最初一段时间内会随机分散在您的名义缓冲区中。如果您等待连续的缓冲区部分完成后再写入它们,则可能会等待很长时间并占用任意大的内存块。通常,区块链检索将使用较小的缓冲区,并在验证后将其写入磁盘。至少对于初始区块链创建,您将写入随机区块,小块随机写入速度将控制您的性能。接收新区块还需要将其提交到磁盘,这需要写入区块链文件、两次写入其日志以及写入目录,如果写入频率足够高,也会受到相同随机写入速度规范的影响。此外,还有人担心您的系统将处理哪些其他工作负载。向同行提供区块链信息也需要随机搜索和读取,因此 SSD 的读取速度远高于旋转锈蚀这一事实也将被证明是一个性能因素。基本上,这是一个磁盘密集型过程,无论如何切片,因此磁盘速度(无论是读取还是写入)最终都将占主导地位。