让任何人开始的简单问题:
我知道我需要一个特殊的网络接口卡(nic)才能做到这一点。我假设它必须是那些SolarFlare制造的。我能得到的最便宜的是什么才能让我实现并测试内核旁路?
看起来他们使用OpenOnLoad作为网络堆栈。在哪里可以找到有关如何使用OpenOnLoad使用我的网络应用程序的示例代码和示例?我很想知道我的程序使用这项技术是多么容易或复杂。
答案 0 :(得分:6)
要使用OpenOnLoad,您需要更改您的环境,特别是LD_LIBRARY_PATH,以便加载它们的库而不是内置的系统库。执行此操作时,“正常”网络IO调用将根据需要重定向以使用内核旁路。
这个库的重点是你可以在不改变你的代码的情况下使用它,所以没有代码样本。
过去使用它,我发现它效果很好,或者你会遇到一些问题,例如:你正在以他们不能满足的方式使用网络,它将失败。在不太可能的情况下,您会看到后者,您必须更改代码,以便以不同的方式使用网络。 (或等待修复)
要真正测试内核旁路,你需要两个网络适配器和一个低延迟交换机(或者你可以跳过交换机)这是因为如果你只有一个低延迟网卡,你将很难确定什么它有所不同。