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

简单记录于此,备忘。

相关推荐
Cinema KI4 分钟前
Linux C/C++ 编译构建:GCC/G++ + Makefile 零基础完整教程
linux·c语言·c++
风曦Kisaki6 分钟前
#Linux Shell 编程入门 Day05 :awk文本数据处理基础
linux·运维
wanhengidc15 分钟前
BGP服务器的功能是什么
运维·服务器·安全·web安全·智能手机
Maguyusi22 分钟前
Ubuntu26.04 编译 abseil-cpp protobuf v33.6
linux·protobuf·abseil
念恒1230622 分钟前
基础IO(文件缓冲区)
linux·c语言·c++
吃着火锅x唱着歌25 分钟前
LeetCode 726.原子的数量
linux·算法·leetcode
剑神一笑28 分钟前
Linux tree 命令深度解析:从目录遍历到树形可视化的完整实现
linux·运维·elasticsearch
小小的木头人1 小时前
Docker Compose 镜像检测脚本(支持自动扫描 + 手动输入 YAML)
运维·docker·容器
wangl_921 小时前
Modbus RTU 与 Modbus TCP 深入指南-决策树与选型建议
网络·网络协议·tcp/ip·tcp·modbus·rtu
夏日听雨眠1 小时前
Linux(printf函数输出问题,exit ,主函数参数,fork函数,文件系统调用)
linux·运维·服务器