最近在压测TCP长连接其中遇到了一些问题:

1、TCP长连接大家知道在建立连接的过程中是一个标准的三次握手协议,而在进行整个握手协议的过程中客户端发出的请求会经过两个状态①、半连接状态 ②、全连接状态 我们可以通过三次握手协议的示意图来进一步了解这两个状态队列。

  • 半连接和全连接指标可以通过命令查询:
  • 半连接上限指标:cat /proc/sys/net/ipv4/tcp_max_syn_backlog
  • 全连接上限指标:cat /proc/sys/net/core/somaxconn
  • 其中还有一个参数:net.ipv4.ip_local_port_range = 10000 65535 ipv4可以使用的端口范围
  • 修改的时候注意切换用户为root用户

    修改完之后执行命令:/sbin/sysctl -p 刷新一下文件生效

2、由于要建立大量连接,再linux的/etc/sysctl.conf 文件中有几个有关TCP长连接的参数如: - net.ipv4.tcp_tw_reuse = 1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; - net.ipv4.tcp_tw_recycle = 1表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。 - 修改完毕之后,需要执行命令: sysctl -p 使参数生效。

3、当进行TCP连接压测的时候被压测的服务端(博主压测的时候场景为:客户端-Netty内核-服务端)主要是客户端-内核创建连接的过程当两台客户端施加压力进行测试的时候发现连接数达到6w左右的时候Netty服务日志出现了报错:“too many open files (Socket creation faild)”此时修改了一下linux内核相关配置:

突破局部文件句柄限制

①、先查看一下单个进程能够支持的最大句柄数:ulimit -n 一般默认的大小1024
②、修改该参数:vi /etc/security/limits.conf 编辑这个文件
修改文件中参数:没有增加有了修改

  • *hard nofile 1000000
  • *soft nofile 1000000
  • 其中*代表当前用户 root代表系统用户
  • hard 和soft代表限制和告警限制,当配置完之后可能还会存在限制,需要再看一下全局文件句柄
突破全局文件句柄限制

①、通过这个命令查看全局文件句柄限制 cat /proc/sys/fs/file-max 注意:局部文件句柄限制不能超过全局文件句柄数的
②、需要修改的话,切换到root用户,编辑文件vi /etc/sysctl.conf 在文件的末尾加上 fs.file-max=1000000

参考连接:单机连接调优

09-Linux下TCP连接数调优设置相关推荐

  1. Perf -- Linux下的系统性能调优工具,第 2 部分

    https://www.ibm.com/developerworks/cn/linux/l-cn-perf2/ Perf -- Linux下的系统性能调优工具,第 2 部分 刘 明, 软件工程师, 上 ...

  2. Linux下的Tomcat调优

    Liunx下Tomcat调优指南 1 概述 由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优和自身调优两类来描述. 2 调优方案 1.1 外部环境调优 1) ...

  3. linux tcp参数调优,Linux TCP 性能调优笔记

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 为了保证可靠连接,tcp 建立连接需要"三次握手",这三次握手对 tcp 的性能有至关重要的影响. ...

  4. Linux清mysql磁盘,mysql与linux ~ 磁盘分析与调优

    一 简介 谈谈磁盘IO的问题二 目的:如何进行IO性能问题的排查 二  linux角度 一 机械硬盘基本定义 寻道时间,表示磁头在不同磁道之间移动的时间(最耗时). 旋转延迟,表示在磁道找到时,中轴带 ...

  5. Linux云计算架构-系统调优【CPU、IO、网络、内核参数调优】

    文章目录 Linux云计算架构-系统调优[CPU.IO.网络.内核参数调优] 1. CPU调优 2. IO调优 3. 网络调优 3.1 网络冗余(主备模式) 3.2 负载均衡模式 4. 内核参数调优 ...

  6. linux内核配置与调优与shell

    sysctl -a abi.vsyscall32 = 1 //开启vdso debug.exception-trace = 1 //开启异常debug调试日志 debug.kprobes-optimi ...

  7. Linux Netfilter 内核参数调优

    Netfilter 是linux 内在的一个软件框架,用来记录管理网络数据包,Netfilter提供了5个hook 来记录管理网络包. Netfilter进行包的管理,则需要记录每个连接的状态信息.这 ...

  8. 64位Linux下JVM内存调设遇到GC问题的备忘

    问题:jar提交到64位的linux环境中执行,由于文件过大,5G左右,发现数据一致导入不了,于是设置了JVM内存,执行命令如下: java -Xmx10240m -jar vip.jar 结果爆出G ...

  9. linux下TCP通信简单实例

    linux下TCP通信简单实例 基于TCP(面向连接)的socket编程,分为服务器端和客户端 服务器端的流程如下: (1)创建套接字(socket) (2)将套接字绑定到一个本地地址和端口上(bin ...

最新文章

  1. 读博士以后如果不去科研岗位,那它的意义在哪里?
  2. 年薪超 1400 万美元!苹果 CEO 库克去年薪酬大曝光!
  3. 策略模式——Strategy
  4. 测试linux nginx,linux系统肿么检测安装了nginx
  5. 炸窝(Java)拼接
  6. (39)FPGA四种常用逻辑门(与非门)
  7. (14)FPGA面试题线与逻辑
  8. mysql 循环插入100w
  9. Windows中,文件所在路径查找命令
  10. sql server 约束 查找
  11. equals()重写之后为什么要重写hashCode()方法
  12. 孙鑫VC++讲座笔记(一)
  13. php 字母加1,PHP语法(1)
  14. 服务器修改动态磁盘,如何创建动态磁盘
  15. 如何用计算机管理员权限,怎么打开管理员权限,电脑怎么用管理员权限
  16. 一、14.猜码游戏:每一轮里,程序随机生成两个数字,一个是码数,0到5,一个是猜数,码数到10。用户也输入码数和猜数。若这一轮程序的猜数等于两个码数之和,输出“电脑胜”,若都没猜对或都猜对了,公布双方
  17. 传感器实验——火焰传感器
  18. 适当的资本运作能有效提高运营商对产业链的掌控力
  19. Ubuntu各个版本下载和安装
  20. java绘制图片验证码两种方式实现,点击【图片】刷新和点击【看不清换一张】刷新

热门文章

  1. 用户和计算机的交互通常通过,人机交互课后题答案
  2. mysqldump:数据库备份程序
  3. plsql查看dblink_PLSQL创建DBLINK
  4. NPOI简单读写 使用方法
  5. 企业直播平台上常用功能有哪些
  6. mysql 中 union 的用法
  7. 联想R7000 2020双系统+无人机仿真环境配置
  8. Android Studio 中列表视图(ListView)的应用
  9. Aurora HDR 2019 for Mac 1.0.1高级 HDR 软件。
  10. 自定义c# MessageBox 弹出框中的button的Text