一、环境
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
相关推荐
本文将详细介绍如何在Linux系统中优化TIME_WAIT状态的连接,并提供具体的配置示例。 #### TCP TIME_WAIT状态简介 TCP协议在连接关闭后会进入TIME_WAIT状态,这是为了确保数据包在网络中的正确传输和避免旧的数据包...
在Cobar测试中,使用sysbench.short进行压力测试,发现即使在默认配置下,服务端的大量time_wait状态也会导致资源占用,影响性能。 综上所述,理解并优化Linux内核协议栈中的TCP time_wait状态是至关重要的,特别是...
针对Apache服务器中`TIME_WAIT`连接数过多的问题,可以通过调整内核参数来进行优化。下面是一些关键的内核参数及其作用: 1. **`net.ipv4.tcp_syncookies`** - **含义**:开启SYN cookies功能,用于防止SYN攻击。 ...
5. **优化TIME_WAIT策略**:可以调整`/proc/sys/net/ipv4/tcp_time_wait_timeout`,缩短TIME_WAIT状态的持续时间,加速端口回收。 6. **使用连接池**:在应用层面,可以实现连接池管理,重复利用已建立的TCP连接,...
- `tcp_fin_timeout`控制FIN_WAIT_2状态下等待的时间,缩短此时间可以更快释放资源。 5. **其他优化**: - 可能还需要考虑调整内存分配策略,如`net.core.rmem_max`和`net.core.wmem_max`,以及网络转发等相关...
3. **开启TCP连接的快速回收和重用**:通过`echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse`和`echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle`,使得TIME_WAIT状态的连接能更快地被复用,减少连接资源的浪费。 4. **关闭...
为了减少磁盘I/O压力,在性能测试期间,建议将日志级别调整为`ERROR`,以便更快速地定位问题。 #### 三、MySQL数据库调优 MySQL的性能调优主要集中在参数配置方面,以下是一些重要的配置项: - **开启慢查询日志*...
- **Solaris**:通过`ndd`工具调整TCP参数以优化网络连接,如减小`tcp_time_wait_interval`到60秒以加快socket关闭。编辑`/etc/system`文件设置文件描述符限制,增加TCP连接哈希表大小等。 - **HP-UX**:参照HP...
同时,了解TIME_WAIT和FIN_WAIT_2等状态的意义。 3. **滑动窗口协议**:深入理解TCP的滑动窗口机制,如何通过调整发送窗口和接收窗口大小来控制流量,防止拥塞。 4. **拥塞控制**:探讨TCP的拥塞控制算法,如慢...
- `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同步队列的最大...
设置SO_REUSEADDR允许快速重启服务,避免TIME_WAIT状态的阻塞。 PHP优化中,升级到PHP7是显著提升性能的途径,但要注意废弃函数和扩展的风险,应做好充分的测试和验证。开启opcode缓存,如OPCache,能够加速PHP脚本...
- **net.ipv4.tcp_tw_reuse**:允许重用TIME_WAIT套接字以减少等待时间。 ##### 3.2 修改内核参数的方法 - **临时修改**:可以通过echo命令直接写入到/proc/sys目录下的对应文件来临时修改内核参数。例如,`echo ...
`TcpTimedWaitDelay`则决定了一个关闭的TCP连接在进入TIME_WAIT状态后等待的时间,降低这个值可以更快地回收端口资源。 2. **命令行工具**:使用`netsh`命令,可以临时或永久更改TCP连接数。例如,`netsh int tcp ...
- **大量TIME_WAIT连接**:调整JMeter测试工具的连接模式或优化主机网络参数(如启用`net.ipv4.tcp_tw_recycle`)可以有效缓解此问题。 #### 高并发分析 针对具体的业务场景进行深入分析,是设计高并发支持方案的...
2. **net.ipv4.tcp_fin_timeout**:定义了一个TCP连接在FIN_WAIT_2状态下等待的时间。减少这个值可以更快地释放资源,应对高并发短连接场景。 3. **net.core.somaxconn**:定义了监听队列的最大长度。增大此值可以...
在进行压力测试时,服务器的连接数受多种因素限制,比如操作系统对文件句柄数量的限制。当达到“too many open files”错误时,意味着超过了系统允许的最大打开文件数。为了提高Linux服务器的TCP连接承载能力,我们...
同时,定期进行压力测试,找出性能瓶颈,有针对性地进行优化。 总的来说,Node.js和Nginx的组合在处理高并发请求时具有显著优势。通过深入理解网络基础和两者的特性,我们可以制定出有效的优化策略,构建出能够应对...