同一主机/网卡上一个 IP 出现连接问题,而另一个 IP 上没有连接问题

同一主机/网卡上一个 IP 出现连接问题,而另一个 IP 上没有连接问题

我正在调试一个问题,其中某些 http 请求随机花费的时间比正常情况下更长。(正常情况下为几毫秒,异常情况下为 1000 毫秒,最长可达一分钟或更长时间)

该主机有多个 IP,我正在使用的服务由其中两个 IP 上的 nginx 代理。

如果我向第一个 IP 发送请求,一切都会按预期进行,所有请求都很快。如果我向第二个 IP 发送请求,某些请求会随机花费几秒钟或更长时间。

两个 IP 都在同一个网卡上:

2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq      master bond0 state UP group default qlen 1000
link/ether 00:0c:29:5e:47:7d brd ff:ff:ff:ff:ff:ff
3: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
link/ether 00:0c:29:5e:47:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.10.73/24 brd 192.168.10.255 scope global bond0
   valid_lft forever preferred_lft forever
inet 192.168.10.72/32 scope global bond0
   valid_lft forever preferred_lft forever
inet 192.168.10.75/32 scope global bond0
   valid_lft forever preferred_lft forever
inet 192.168.10.76/32 scope global bond0
   valid_lft forever preferred_lft forever
inet 192.168.10.54/32 scope global bond0
   valid_lft forever preferred_lft forever

例如:

curl -H "Host: xxx" http://192.168.10.54:6700/test

会随机变慢,而

curl -H "Host: xxx" http://192.168.10.75:6700/test

总是很快。

两个 IP 均由同一个 nginx 服务器块提供服务:

server {
        listen 192.168.10.75:6700;
        listen 192.168.10.54:6700;

        location / {
                proxy_pass http://...;
        }
}

我已经检查了开放的端口,但每个 IP 上只有几百个连接。

这是在 Linux 上(3.16.0-8-amd64 #1 SMP Debian 3.16.64-2 (2019-04-01) x86_64 GNU/Linux)服务器在 vmWare 中运行,因此 NIC 报告为0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)

我没有 iptable 规则

我不确定如何进行调试,如能得到任何提示我将非常感激:-)

具体问题:

  • 我可以检查同一绑定上的 IP 级别上哪些设置可以不同
  • 我可以检查哪些指标来提示原因
  • 网络上的其他东西是否会导致这样的影响(重复的 IP、VLAN 配置等?)
  • 什么东西可能在 IP 上“超载”或饱和,但在其他 IP 上却不会?

相关内容