场景:广州地域一个 VPC,6 台业务 CVM(TencentOS Server 3.1,Java 11 应用)在私有子网,默认路由指向一个标准型 NAT 网关,网关只绑定 1 个 EIP。应用高并发 HTTPS 调用同一个第三方服务,域名固定,目前只解析到 1 个公网 IP,端口 443。
现象:
java.net.SocketTimeoutException: connect timed out,每分钟几十到几百条,其余时间基本没有。curl -o /dev/null -s -w '%{time_connect}\n' --connect-timeout 5 https://api.example.com/ping,大部分 20 ms 内成功,偶尔报 curl: (28) Connection timed out after 5001 milliseconds,即 TCP 握手没完成。OutBandwidth、InBandwidth 峰值远低于规格上限,ConnsUsage 峰值约 5%,Droppkg 没有明显增长,Conns 峰值约 5.8 万。ss -s 的 TIME-WAIT 为几千到一万多,本机端口范围是默认的 32768 60999,没有耗尽。已尝试:
问题:
相似问题