【无标题】高流量大并发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

简单记录于此,备忘。

相关推荐
FatHonor15 小时前
Nginx作用以及应用场景
运维·nginx
Du_chong_huan15 小时前
《Linux 是怎样工作的》第 2 章:用户模式实现的功能
linux·运维·服务器
学电子她就能回来吗15 小时前
【无标题】
linux·运维·服务器
yeflx15 小时前
Ubuntu22.04安装Openclaw
运维
技术栈壳15 小时前
搭建docker hub私有仓库
运维·docker·容器
qq_2837200515 小时前
MySQL实战(七):日常运维 SQL汇总
运维·sql·mysql
有毒的教程16 小时前
Ubuntu 安装完成后网络配置教程
linux·网络·ubuntu
刚入门的大一新生16 小时前
Linux-Linux的基础指令3
linux·运维·服务器
草莓熊Lotso16 小时前
MySQL 复合查询核心指南:多表、子查询与实战技巧
linux·运维·服务器·数据库·人工智能·mysql
kaoa00016 小时前
Linux入门攻坚——71、puppet-1
linux·运维·puppet