最近在做一个项目,用到HttpClient查询数据,由于服务端强制做成了短链接(大家都知道http1.1默认是带有keepalive机制),导致了请求方TCP状态很多都是TIME_WAITZ状态,端口被全部占用,请求失败
调优过程:
首先:
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭
本以为可以皆大欢喜压测通过,悲惨的是还是提示“地址已在使用”
再次查看了网上一些资料:
net.ipv4.tcp_fin_timeout=20 ,结果问题还是存在
接着查看了TCP参数,发现net.ipv4.tcp_tw_timeout 参数,凭直觉这个应该是TIME_WAIT过期时间,改成20,效果明显,解决问题
总结下:
net.ipv4.tcp_tw_reuse 这个参数启用,必须要应用程序做配置,用户态程序必须手动设置了socket是so_reuseaddr,否则无效果
net.ipv4.tcp_tw_recycle 这个参数主要底层运算还是需要根据TIME_WAIT过期时间,这个不调整,启用这个参数也没有效果
net.ipv4.tcp_tw_timeout 这个顾名思义就是TCP状态中TIME_WAIT的过期时间,默认情况是60秒
net.ipv4.tcp_fin_timeout 这个参数是TCP状态中FIN_WAIT2的过期时间
相关推荐
7. 网络性能分析与优化:涉及带宽、延迟、吞吐量等网络性能指标,以及TCP/IP性能调优的方法。 这些是考研中操作系统和计算机网络的主要知识点,通过阅读《谢希仁第五版》和《汤小丹第三版》这两本教材,可以深入...
理解Socket、TCP/IP协议、HTTP长连接和短连接等概念对于编写高性能的网络应用非常重要。同时,安全算法面试题,如支持O(1)时间复杂度操作的栈的实现、Bloom Filter等也是考察候选者是否具有扎实的计算机基础和解决...
- 性能优化:包括服务器性能调优、缓存策略、负载均衡等,以应对高并发场景。 总之,PHP长连接服务器端是实现Web即时通讯的重要技术手段,通过Comet或WebSocket等技术,可以创建高效、实时的通讯系统。在实际开发中...
29. **全局变量初始化顺序**:在链接阶段确定,依赖于链接器和编译器的具体实现。 30. **strace指令**:用于跟踪和调试进程的系统调用和信号。 31. **数据安全**:包括加密技术、完整性校验,如MD5,以及防止未...
- **网络编程基础**:了解TCP/IP协议栈、socket编程接口。 - **HTTP原理**:深入分析HTTP协议的工作机制、状态码含义等。 - **Socket编程**:掌握Socket编程的基本流程,包括服务器端与客户端的实现。 #### 五、...
16. **HTTP1.0、1.1和2.0**:HTTP/1.0主要支持短链接,HTTP/1.1引入持久连接和管线化,HTTP/2引入二进制分帧和多路复用,显著提高了效率。 17. **JVM参数及相关**:JVM参数用于调整堆内存大小、栈内存、垃圾收集...