Netty为各种ChannelOption
提供支持。其中有些工具,例如TCP_QUICKACK
,似乎可以在绝大多数用例中提高性能,但是仍然必须手动发现并启用它们。
我正在寻找有关在用例的多数中通常值得使用的ChannelOption
的指导。我知道其中的一些(例如TCP_NODELAY
)可能会引起争议,并且取决于您是否要针对带宽与延迟进行优化。
为了弄清事情,假设我正在尝试寻找带宽,吞吐量和延迟的最佳中间地带,并且我正在使用同时包含大小消息的HTTP通道。我还在使用Epoll的环境中进行工作。
以下是一些我经常使用的ChannelOption
:
ChannelOption.SO_BACKLOG
ChannelOption.SO_KEEPALIVE
ChannelOption.SO_REUSEADDR
UnixChannelOption.SO_REUSEPORT
EpollChannelOption.TCP_CORK
EpollChannelOption.TCP_QUICKACK
EpollChannelOption.TCP_FASTOPEN
和EpollChannelOption.TCP_FASTOPEN_CONNECT
同样,我知道根据每个人的用例,使用哪种以及使用哪种值会大不相同,但是我正在寻求大多数通用最佳实践/建议的高级指导用例-或至少通常值得调查和进行基准测试。特定于应用程序的配置示例也将有所帮助。
此外,对我来说,尚不完全清楚应将以上哪个应用于ServerBootstrap
的{{1}}与option
,以及哪个应用于客户端引导程序和服务器引导程序