处理许多传出的 TCP 连接

处理许多传出的 TCP 连接

我正在测试 EC2 上具有“高”网络性能的服务器,以检查我可以在其上使用的最大传出连接数。在不更改任何设置的情况下,通过打开大约 1000 个线程(每个线程发送一个 TCP 请求),大约 10 分钟后,我收到“连接被拒绝”错误,我确信这是我这边的问题,因为我知道目标服务器没有看到任何错误。

我按照说明进行操作本文其中谈到了TIME_WAIT所以Ephemeral ports我做了这些:

  1. 增加临时端口的数量
  2. 启用 tcp_tw_recycle 和 tcp_tw_reuse

通过执行这两个操作,我仍然会收到错误,但需要经过更长的时间(例如几个小时)。一般来说,我想知道具有特定硬件配置的 Ubuntu 服务器可以处理多少网络流量。我如何监控传出流量,以便找出到底出了什么问题?

答案1

要监控传出流量,请查看以下工具:tshark、tcpdump、ettercap。

另请查看以下设置:

root@server ~ # sysctl -A | grep -i wait
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120

相关内容