让任何人开始的简单问题:
-
我知道我需要一个特殊的网络接口卡(nic)来做这件事。我想它一定是SolarFlare制造的。我能得到的最便宜的能让我实现和测试内核旁路的是什么?
-
看起来他们使用OpenOnLoad作为网络堆栈。我在哪里可以找到关于如何使我的网络应用程序使用OpenOnLoad的示例代码和示例?我很想知道我的程序使用这项技术有多容易或有多复杂。
这个问题源于这里的另一个问题:Java 中使用内核旁路的网络
要使用OpenOnLoad,您需要更改环境,特别是LD_LIBRARY_PATH,以便它加载它们的库,而不是内置的系统库。当您这样做时,"正常"的网络IO调用会根据需要重定向以使用内核旁路。
这个库的全部意义在于,您可以在不更改代码的情况下使用它,因此没有代码示例。
在过去使用过它之后,我发现它要么效果很好,要么你会遇到一些问题,比如你以他们不适合的方式使用网络,它就会失败。在您稍后看到的不太可能的情况下,您必须更改代码,使其以不同的方式使用网络。(或等待修复)
要真正测试内核旁路,您需要两个网络适配器和一个低延迟交换机(或者您可以跳过交换机)。这是因为如果您只有一个低延时网卡,您将很难确定它的区别。