我该在哪里找到一些SolarFlare OpenOnLoad内核旁路的Java示例代码?

5

以下是一些简单的问题,可以帮助任何人入门:

  1. 我知道我需要一个特殊的网络接口卡(nic)来做这个。我假设它必须是SolarFlare制造的那种。我能得到的最便宜的是哪一个,可以让我实现和测试内核旁路?

  2. 看起来他们使用OpenOnLoad作为网络堆栈。我在哪里可以找到关于如何使我的网络应用程序使用OpenOnLoad的示例代码和示例?我想知道我的程序使用这项技术有多容易或复杂。

这个问题来源于这个问题:Networking with Kernel Bypass in Java


将来请每个问题只提出一个实际问题。如果一个问题与另一个问题有关,则可以添加到另一个问题的链接。 - Some programmer dude
1个回答

7
要使用OpenOnLoad,您需要更改环境,特别是LD_LIBRARY_PATH,以便加载它们的库而不是内置系统库。这样做会将“普通”的网络IO调用重定向为所需,以使用内核绕过。
这个库的整个意义在于,您可以在不更改代码的情况下使用它,因此没有代码示例。
在过去使用它时,我发现它要么非常好用,要么会遇到一些问题,例如您正在使用它们没有考虑到的网络方式,那么它就会失败。如果您碰巧遇到后者,您必须更改代码,以便以不同的方式使用网络。(或等待修复)
要真正测试内核绕行,您将需要两个网络适配器和一个低延迟交换机(或者您可以跳过交换机)。这是因为如果您只有一个低延迟网络卡,您将很难确定它带来了什么不同。

谢谢,彼得。你知道它在 Linux 上的 NIO Epoll(Java 1.6)上是否可以正常工作吗? - chrisapotek
我们在选择器方面没有问题。 - Peter Lawrey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接