千兆位 - 吞吐量更多地受 CPU/RAM 还是磁盘 IO 的限制?

千兆位 - 吞吐量更多地受 CPU/RAM 还是磁盘 IO 的限制?

设置一些网络文件共享。我正在考虑 NAS 或无头台式电脑。两者都有千兆以太网和类似的 SATA 连接。主要区别在于 CPU 和 RAM。

CPU 和 RAM 对于传输数据有多大影响?

磁盘 IO 是否会在 CPU 或 RAM 之前成为瓶颈?

答案1

更新后问题的答案(原始答案见下文):

在涉及顺序 I/O(如包含视频、音乐或照片文件的媒体服务器)和多个磁盘的场景中,您实际上会先受到千兆网络限制,然后再受到 CPU 或磁盘的限制。随机 I/O 会在盘片磁盘上造成瓶颈,但 SSD 会轻松地将瓶颈重新放在千兆网络上。一些盘片磁盘本身就可以使千兆线路饱和(WD Black 驱动器、10K rpm 驱动器、15K RPM 驱动器)

作为参考,使用 5 个磁盘,我可以轻松达到超过三倍千兆的速度,并保持连续 I/O。使用 SSD 作为缓存驱动器(使用 ZFS),我可以相当轻松地让服务器上的两条千兆线路保持饱和,以应对许多(但不是全部)工作负载。

当您想要开始在 NAS 上运行应用程序时,需要更多的 CPU/RAM,例如备份实用程序(即 CrashPlan)、媒体转码/流式传输或其他与在磁盘上存储数据无严格关系的 CPU 密集型任务。


NAS 实际上只是一台具有较少 CPU/RAM 的无头 PC,通常带有嵌入式操作系统。

这个问题太过宽泛,无法提供任何真正的绩效指标,但要知道,问题。我最近购买了一台基于 ARM 的小型 NAS 设备,发现 CPU 无法全速处理所有计算(RAID5 需要相当多的 CPU 能力)。我以 30MB/s 而不是 100MB/s(大约千兆位速度)复制文件。

这个问题有点离题,因为它太宽泛了,但最终还是要归结为你打算用这个设备做什么。大多数 NAS 都很好,而且功能齐全;它们启动和关闭速度快,驱动器更换方便,但经常让你在“昂贵”或“缓慢”之间做出选择。另一方面,台式机和服务器相对便宜,你可以用它们做更多的事情,但你会发现自己需要自己做很多设置(安装操作系统、配置驱动器等)。我不再使用嵌入式 NAS 是因为我不介意配置工作,而且我想在文件服务器上做比我现有的嵌入式 NAS 上更多的事情,但这是一个个人选择,本网站上没有人能替你回答,而且硬件变化太快,我们无法给出建议。

答案2

我希望我有 50 点声誉,因为我同意 Darth Android 的上述回答。

通常,在达到 10Gbps 网络之前,您不会遇到 CPU/内存问题,那时您开始将 TOE(TCP 卸载引擎)添加到组合中,以将工作卸载到 NIC 卡上的专用处理上。

TOE 是网卡上的 GPU,相当于显卡上的 GPU,以及旧式硬盘控制器使用的 DMA(直接内存访问)。它允许将 TCP/IP 堆栈的工作卸载到 NIC,而不是通过主板前端总线和 CPU 来运行,因为后者是这种速度下数据处理的瓶颈。

简短的回答是,在使用 10Gbps 卡之前,您通常不受 CPU/RAM/总线的限制。

相关内容