是的,硬件链的几乎任何部分(从传入链接到硬盘驱动器)都有可能成为瓶颈,具体取决于您的硬件。
如果您实际上维持下载速度快于硬盘驱动器的线性写入速度,它肯定会成为瓶颈。
但是请注意,即使是当今大多数预算有限的硬盘1的线性写入速度也至少为 50 MB/s,即 400 Mbps,并且通常更接近 100 MB/s(即, 800 Mbps)。在 800 Mbps 的有效写入速度下,您的驱动器应该能够跟上饱和 1 Gbps 链路2,至少大约是这样,但肯定会落后于10 Gbps 链接。
现在,您使用 iostat 测量的不是任何有用的基准 - 它告诉您在某个时间间隔内您的活动请求主机的整个正常运行时间的实际吞吐量:除非在期间进行大量传输间隔,报告的速度与您的实际磁盘写入速度几乎没有关系。有很多基准测试工具可以直接测量您的读写速度。
最后要记住的是,大多数现代操作系统对存储写入使用“回写”策略 - 写入首先发送到 RAM(即 Windows 上的文件缓存或 Linux 上的页面缓存),然后异步流式传输到磁盘。这有助于隐藏实际磁盘的吞吐量,以应对相对较短的写入突发。例如,如果写入为几百 MB 或几 GB3,您的磁盘可能看起来具有 5 GB/s 或更高的非常高的吞吐量,但随后将接近真实的磁盘速度它们变得更大,因为您的操作系统磁盘缓存的缓冲能力将被耗尽。显然,对于 200 GB 的传输,磁盘缓存无法隐藏磁盘速度,除非您有 100 GB 的 RAM。
说了这么多,是的,你的硬盘肯定会成为瓶颈,
但可能比您使用iostat 测量的吞吐量更高。
1这种线性读写速度的提高主要是增加areal density存储空间的产物,这直接转化为增加的线性 相同 RPM 下的读/写速度。然而,随机读/写没有这种关系。具有合理容量的 SSD 通常会将其提高另一个数量级,达到大约 1 GB/s (8 Gbps) 或更高。
2 主要是因为这些网络链接有开销,对于快速链接,通常会将实际负载降低到理论链接速度的 80% 以下。
3具体值取决于您的总 RAM、可用 RAM 和操作系统配置。