我是英特尔DPDK的新手。 我打算写一个http网络服务器。
可以使用DPDK使用以下逻辑实现吗?
我不确定上述内容是否可行。
是否可以使用英特尔DPDK编写Web服务器?
答案 0 :(得分:2)
这是很多工作,因为你需要在DPDK之上的TCP / IP堆栈。即使你已经在DPDK之上移植了一个TCP / IP堆栈(或者重新使用来自操作系统的端口),你也无法获得性能,因为编写运行的C代码很容易,但写入TCP / IP堆栈维持良好的性能,这是一个非常困难的发展。
您可以尝试http://www.6wind.com/6windgate-performance/tcp-termination/:它们不提供HTTP服务器,但它们提供了类似于TCP套接字的L7,以构建最快的HTTP服务器。
答案 1 :(得分:1)
是的,可以使用DPDK构建Web服务器。您可以使用DPDK提供的KNI接口。在KNI接口上接收的所有数据包仍然通过内核网络堆栈进行路由 - 然而,继续捕获,这仍然比直接从内核接收数据包(需要多个副本)更快。使用DPDK,您仍然可以将内核ping到RX并将不同的内核ping到TX。然后,您可以指示您的操作系统不要将这些lcores用于其他任何事情。所以你真的有用于TX和RX的专用lcores。确保Tx和RX lcores位于不同的CPU插槽上。
更多信息: http://dpdk.org/doc/guides/sample_app_ug/kernel_nic_interface.html