我注意到 Realtek 的 NIC 有一个选项,可以将部分 CPU 的校验和工作“卸载”到自身。然而,我认为这对网上人们的看法产生了一些有趣的影响:一些人说它可以提高多媒体应用程序(例如游戏)的性能,而另一些人则说,删除该选项并让 CPU 来做这件事可以提高性能。
假设机器是多处理器的,并且多媒体应用程序不是完全多线程的;NIC 是否会通过卸载校验和工作来提供更低的延迟,或者 CPU 执行此操作(在非拥塞处理器上)会更好?
答案1
我不是这方面的专家,但是如果具有 NIC 的设备表示它可以在不需要 CPU 的情况下在内部进行计算,那么它的速度就会更快,因为它有自己的芯片来进行计算,并且该芯片专门设计用于进行数学运算,而不是将其卸载到 CPU。
答案2
在您的场景中:没关系。
在高端场景中:定制的 ASIC(或好的 FPGA)旨在提高性能,但处理的不仅仅是简单的数据包校验和——高端服务器 NIC 将卸载所有 TCP/IP 处理与系统其余部分隔离。当你谈论多端口千兆以太网(或 10 GbE!)卡时,它是很多从 CPU 中移除的处理。
这对您来说并不重要,因为校验和计算非常简单,并且在任何现代系统或 NIC 上几乎不需要花费任何时间,并且您的互联网连接几乎肯定是影响延迟和带宽的唯一因素(在非中断网络中)。