我正在设计一个应用程序,它有一个网络接口,用于提供大量非常小的元数据请求。应用程序代码本身非常快,基本上是查找缓存在内存中的数据并将其发送给客户端。
对于在 linux 机器上运行的网络应用程序服务器,我可以获得的绝对最低延迟是多少?这将是一个在 gigE 上运行的内部应用程序,无需身份验证。考虑的任何语言/框架,优先考虑 C、C++ 或 Python。协议也是如此,尽管 HTTP 会很好。
我正在设计一个应用程序,它有一个网络接口,用于提供大量非常小的元数据请求。应用程序代码本身非常快,基本上是查找缓存在内存中的数据并将其发送给客户端。
对于在 linux 机器上运行的网络应用程序服务器,我可以获得的绝对最低延迟是多少?这将是一个在 gigE 上运行的内部应用程序,无需身份验证。考虑的任何语言/框架,优先考虑 C、C++ 或 Python。协议也是如此,尽管 HTTP 会很好。
对于小型、快速的 HTTP 服务器,您可以查看gatling。主要特点:
如果它适合您的需求,请考虑 C 或 C++ 和zmq
不过,对于像这样的应用程序,从性能角度来看,语言并不是最大的因素。如果您需要支持大量客户端,编程模型将是决定因素,每个客户端线程(较慢)或异步/非阻塞(较快)。
Facebook 最近获得了他们定制的 memcached 以每秒处理 200,000 个请求,延迟时间为 173 微秒。
您可以阅读源代码以了解他们是如何做到的。他们最大的变化之一是放弃 TCP 并改用 UDP。
G-WAN 提供 C 和 C++脚本,并且已经过每秒近 800,000 个请求的测试。
我不知道有什么比这更快的,并且已经测试了许多其他服务器。