热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

09Linux下TCP连接数调优设置

最近在压测TCP长连接其中遇到了一些问题:1、TCP长连接大家知道在建立连接的过程中是一个标准的三次握手协议,而在进行整个握手协议的过程中客户端发出的

最近在压测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
在这里插入图片描述
参考连接:单机连接调优


推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • python3+tkinter实践历程(四)——模仿CRT完成基于socket通信与tkinter的TCP串口客户端
    python3tkinter实践历程(四)——基于socket通信与tkinter的TCP串口客户端(仿CRT)文章目录系列文章目录分享背景制作背景最终功能工具截图展示代码详解系列 ... [详细]
  • 今天搭建了redis环境,使用自带的benchmark进行了性能测试选择测试键的范围大小默认情况下面,基准测试使用单一的key。在一个基于内存的数据库里,单一key测试和真实情况下 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 详解Netty Zero Copy机制
    NettyZeroCopy的巧妙设计让Netty从众多高性 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • SpringMVC 12 使用请求参数和返回值的Object类型
    对返回Objec ... [详细]
author-avatar
窝大华_221
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有