如何减慢硬盘处理快速下载工作量

时间:2017-01-16 20:52:30

标签: performance networking storage disk

我从未尝试过这个,但这是我想知道的事情。 如果我使用非常快的链接(1 Gbps甚至10 Gbps)下载一个非常大的文件(比如200 GB),那么SO(或者这样做的人)如何在磁盘中同时写入下载的文件,因为磁盘与链接速度相比,写入速度非常慢? 在这种情况下,硬盘会成为瓶颈吗? 如果我在我的电脑上运行iostat它会显示1027 KBps~1 MBps的写入速度,与之前说明的链接相比非常慢。

1 个答案:

答案 0 :(得分:1)

是的,对于硬件链的几乎任何部分来说,从输入链接到硬盘驱动器都可能成为瓶颈,这取决于您的硬件。

如果您实际上维持的下载速度比硬盘驱动器的线性写入速度更快,则肯定会成为瓶颈。

但请注意,即使是今天大多数预算硬盘驱动器 1 的线性写入速度至少为50 MB / s,即400 Mbps,通常接近100 MB / s(即,800 Mbps)。在800 Mbps的有效写入速度下,您的驱动器应该能够跟上饱和的 1 Gbps链路 2 ,至少差不多,但肯定会落后于10 Gbps链路。

现在,您使用iostat测量的内容并不是任何有用的基准测试 - 它会告诉您在某个时间间隔内主机请求的整个正常运行时间的实际吞吐量:除非在间隔期间进行大量传输,否则报告的速度与实际磁盘写入速度几乎没有关系。有很多基准测试工具可以直接测量您的读写速度。

最后的想法是要记住,大多数现代操作系统使用"回写"存储写入策略 - 写入首先发送到RAM(即Windows上的文件缓存或Linux上的页面缓存),然后异步流式传输到磁盘。这有助于隐藏实际磁盘的吞吐量,以进行相对较短的写入突发。例如,如果写入数百MB或几GB( 3 ),则磁盘可能看起来具有5 GB / s或更高的吞吐量,但随后将接近真正的磁盘速度它们会变大,因为操作系统磁盘缓存的缓冲能力将会耗尽。显然,对于200 GB的传输,磁盘缓存不能隐藏磁盘速度,除非你有100 GB的RAM。

所有这一切都说,是的,你的硬盘肯定会成为瓶颈, 但可能是高于您使用iostat测量的吞吐量。

1 线性读取和写入速度的增加主要是增加areal density存储的工件,直接转换为增加的线性< / em>在相同RPM下的读/写速度。然而,随机读/写没有这种关系。具有合理容量的SSD通常会将其增加另一个数量级,大约为1 GB / s(8 Gbps)或更高。

2 主要是因为这些网络链路有开销,快速链路通常会将实际有效负载降低到理论链路速度的80%以下。

3 确切的值取决于您的总RAM,可用RAM和操作系统配置。