【无标题】高流量大并发Linux TCP性能调优

最近在使用jmeter做压测,当jmeter的并发量高的时候发现jmeter服务器一直报错Cannot assign requested address,

查看了一下发现系统中存在大量处于TIME_WAIT状态的tcp端口

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

TIME_WAIT 50013

ESTABLISHED 27

SYN_RECV 1

在网上查阅了一些tcp参数的相关资料,最后通过修改了几个系统内核的tcp参数缓解了该问题:
vi /etc/sysctl.conf
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
sysctl -p

其中:

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

修改完成并生效后,系统中处于TIME_WAIT状态的tcp端口数量迅速下降到100左右:

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

TIME_WAIT 82

ESTABLISHED 36

简单记录于此,备忘。

相关推荐
冉佳驹21 分钟前
Linux ——— 虚拟地址、页表、物理地址与 waitpid 和进程管理中的核心概念和技术
linux·waitpid·进程程序替换·exit·地址空间·非阻塞轮询·exec系列
最后一个bug1 小时前
CPU的MMU中有TLB还需要TTW的快速查找~
linux·服务器·系统架构
zdd567892 小时前
行存表与列存表简述
运维·postgresql
小杨同学492 小时前
Linux 从入门到实战:常用指令与 C 语言开发全指南
linux
福尔摩斯张2 小时前
Linux的pthread_self函数详解:多线程编程中的身份标识器(超详细)
linux·运维·服务器·网络·网络协议·tcp/ip·php
2401_832298102 小时前
一云多芯时代:云服务器如何打破芯片架构壁垒
运维·服务器·架构
ArrebolJiuZhou2 小时前
02arm指令集(一)——LDR,MOV,STR的使用
linux·网络·单片机
一只旭宝2 小时前
Linux专题八:生产者消费者,读写者模型以及网络编程
linux·网络
Web极客码3 小时前
如何在 Linux 中终止一个进程?
linux·运维·服务器
大聪明-PLUS3 小时前
Linux 中的 GPIO 驱动程序
linux·嵌入式·arm·smarc