`
happyqing
  • 浏览: 3197869 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

压力测试TCP参数优化TIME_WAIT

阅读更多

 

一、环境

RHEL 6.5, Nginx 1.8.1

RHEL 6.5, Websphere 7.0

 

二、问题

1.nginx报错

connect() failed (110: Connection timed out) while connecting to upstream

 

2.压力大时,nginx服务器和was服务器有大量TIME_WAIT连接,达到几万

linux查看TCP连接数量

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

 

三、优化方法

1.nginx性能优化配置长连接

nginx反向代理upstream默认使用短连接,可以采用长连接,效果十分明显,TIME_WAIT只剩几百了

http://happyqing.iteye.com/blog/2384283

 

2.linux TCP参数优化

vi /etc/sysctl.conf 添加

net.core.somaxconn = 2048

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_timestamps = 0 #不验证时间戳

(如果有多台服务器,时间不一致,需要加上此参数,否则有的连接请求会被抛弃)

 

#立即生效

/sbin/sysctl -p 

 

四、压测试机调整

产生压力的测试机(win7 )也会有大量的TIME_WAIT连接

windows查看TIME_WAIT连接

cmd

netstat -ano

netstat -ano > d:/port.txt 导出到文件

 

1、修改注册表中的tcpip的参数:TIMEWAIT回收时间

在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,添加名为TcpTimedWaitDelay的DWORD键,设置为十进制1,以缩短TIME_WAIT的等待时间。

 

2.MaxUserPort 改为 65534

 

分享到:
评论

相关推荐

    大量TIME_WAIT状态的连接解决方法

    本文将详细介绍如何在Linux系统中优化TIME_WAIT状态的连接,并提供具体的配置示例。 #### TCP TIME_WAIT状态简介 TCP协议在连接关闭后会进入TIME_WAIT状态,这是为了确保数据包在网络中的正确传输和避免旧的数据包...

    linux内核协议栈TCP time_wait原理、优化、副作用1

    在Cobar测试中,使用sysbench.short进行压力测试,发现即使在默认配置下,服务端的大量time_wait状态也会导致资源占用,影响性能。 综上所述,理解并优化Linux内核协议栈中的TCP time_wait状态是至关重要的,特别是...

    apache time_wait连接数太多问题解决方法

    针对Apache服务器中`TIME_WAIT`连接数过多的问题,可以通过调整内核参数来进行优化。下面是一些关键的内核参数及其作用: 1. **`net.ipv4.tcp_syncookies`** - **含义**:开启SYN cookies功能,用于防止SYN攻击。 ...

    TCPIP并发连接数修改

    5. **优化TIME_WAIT策略**:可以调整`/proc/sys/net/ipv4/tcp_time_wait_timeout`,缩短TIME_WAIT状态的持续时间,加速端口回收。 6. **使用连接池**:在应用层面,可以实现连接池管理,重复利用已建立的TCP连接,...

    操作系统参数配置不当引起系统并发访问卡顿排查方法.doc

    - `tcp_fin_timeout`控制FIN_WAIT_2状态下等待的时间,缩短此时间可以更快释放资源。 5. **其他优化**: - 可能还需要考虑调整内存分配策略,如`net.core.rmem_max`和`net.core.wmem_max`,以及网络转发等相关...

    优化nginx大并发——轻松应对上万并发访问

    3. **开启TCP连接的快速回收和重用**:通过`echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse`和`echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle`,使得TIME_WAIT状态的连接能更快地被复用,减少连接资源的浪费。 4. **关闭...

    linux+tomcat+mysql+solr调优

    为了减少磁盘I/O压力,在性能测试期间,建议将日志级别调整为`ERROR`,以便更快速地定位问题。 #### 三、MySQL数据库调优 MySQL的性能调优主要集中在参数配置方面,以下是一些重要的配置项: - **开启慢查询日志*...

    WebLogic Server 8性能调优

    - **Solaris**:通过`ndd`工具调整TCP参数以优化网络连接,如减小`tcp_time_wait_interval`到60秒以加快socket关闭。编辑`/etc/system`文件设置文件描述符限制,增加TCP连接哈希表大小等。 - **HP-UX**:参照HP...

    tcpip高效编程源代码(改善网络程序的44个技巧)

    同时,了解TIME_WAIT和FIN_WAIT_2等状态的意义。 3. **滑动窗口协议**:深入理解TCP的滑动窗口机制,如何通过调整发送窗口和接收窗口大小来控制流量,防止拥塞。 4. **拥塞控制**:探讨TCP的拥塞控制算法,如慢...

    芒果TV ELK日志系统实践 -刘波涛

    - `net.ipv4.tcp_tw_reuse`、`net.ipv4.tcp_tw_recycle`: 控制TIME_WAIT状态的重用和回收机制。 - `net.ipv4.ip_local_port_range`: 设置本地端口范围。 - `net.ipv4.tcp_max_syn_baklog`: 设置TCP同步队列的最大...

    藏经阁-亿级 PV网站架构实战之性能压榨.pdf

    设置SO_REUSEADDR允许快速重启服务,避免TIME_WAIT状态的阻塞。 PHP优化中,升级到PHP7是显著提升性能的途径,但要注意废弃函数和扩展的风险,应做好充分的测试和验证。开启opcode缓存,如OPCache,能够加速PHP脚本...

    Linux+性能调优的几种方法

    - **net.ipv4.tcp_tw_reuse**:允许重用TIME_WAIT套接字以减少等待时间。 ##### 3.2 修改内核参数的方法 - **临时修改**:可以通过echo命令直接写入到/proc/sys目录下的对应文件来临时修改内核参数。例如,`echo ...

    windows连接数修改工具

    `TcpTimedWaitDelay`则决定了一个关闭的TCP连接在进入TIME_WAIT状态后等待的时间,降低这个值可以更快地回收端口资源。 2. **命令行工具**:使用`netsh`命令,可以临时或永久更改TCP连接数。例如,`netsh int tcp ...

    高并发支撑设计及优化规范

    - **大量TIME_WAIT连接**:调整JMeter测试工具的连接模式或优化主机网络参数(如启用`net.ipv4.tcp_tw_recycle`)可以有效缓解此问题。 #### 高并发分析 针对具体的业务场景进行深入分析,是设计高并发支持方案的...

    performance-tuning:性能调整调整高并发低延迟内核调整sysctl.conf

    2. **net.ipv4.tcp_fin_timeout**:定义了一个TCP连接在FIN_WAIT_2状态下等待的时间。减少这个值可以更快地释放资源,应对高并发短连接场景。 3. **net.core.somaxconn**:定义了监听队列的最大长度。增大此值可以...

    你知道一台Linux服务器可以负载多少个连接吗

    在进行压力测试时,服务器的连接数受多种因素限制,比如操作系统对文件句柄数量的限制。当达到“too many open files”错误时,意味着超过了系统允许的最大打开文件数。为了提高Linux服务器的TCP连接承载能力,我们...

    使用Node.js配合Nginx实现高负载网络

    同时,定期进行压力测试,找出性能瓶颈,有针对性地进行优化。 总的来说,Node.js和Nginx的组合在处理高并发请求时具有显著优势。通过深入理解网络基础和两者的特性,我们可以制定出有效的优化策略,构建出能够应对...

Global site tag (gtag.js) - Google Analytics