zoukankan      html  css  js  c++  java
  • linux的TCP连接次数优化

    TCP连接状态详解 

    • LISTEN: 侦听来自远方的TCP端口的连接请求
    • SYN-SENT: 再发送连接请求后等待匹配的连接请求
    • SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
    • ESTABLISHED: 代表一个打开的连接
    • FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认
    • FIN-WAIT-2: 从远程TCP等待连接中断请求
    • CLOSE-WAIT: 等待从本地用户发来的连接中断请求
    • CLOSING: 等待远程TCP对连接中断的确认
    • LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认
    • TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认
    • CLOSED: 没有任何连接状态
    • SYN_RECV表示正在等待处理的请求数;
    • ESTABLISHED表示正常数据传输状态;
    • TIME_WAIT表示处理完毕,等待超时结束的请求数。

    1、time_wait连接数过多优化

    TCP连接数存在过多的话导致无法建立请求的话,可以通过调整超时时间快速释放TCP链接(一个连接对应一个端口号,最多65535个端口),默认是time_wait是60s,也可以通过调整文件句柄数(每个TCP连接都要占用一个文件描述符,可以查看文件句柄数限制数判断是否需要调整)

    ①、查看文件句柄数(ulimit -n)

    ②、看是否存在大量TIME_WAIT连接(netstat -ntplau |grep TIME_WAIT |wc -l)

    例子:倘若文件句柄数是默认的1024,而此时建立连接数都已满,那可通过2种方式处理,一是调大文件句柄数、二是调大TCP连接数

    1)

    查看文件句柄数(ulimit -n)为1024,临时的修改方式:ulimit -n 20000,但是这种临时修改只对当前登录用户目前的使用环境有效,系统重启或用户退出后就会失效。

    永久生效的修改方式:

    echo ulimit -HSn 65536 >> /etc/rc.local
    echo ulimit -HSn 65536 >>/root/.bash_profile
    ulimit -HSn 65536

    2)调整TCP连接数

    查看TCP等待超时时间cat /proc/sys/net/ipv4/tcp_fin_timeout(默认为60s),echo 30 /proc/sys/net/ipv4/tcp_fin_timeout 改成30s

  • 相关阅读:
    维基百科可以浏览了,不能搜索
    《语言的本能》很值得一读
    打算尝试瑜伽,看是否能解决长期困扰的胃痛问题
    折腾了一晚终于把rails安装好了!
    世界杯正在成为鸡肋!球迷越来越像傻瓜!
    第一次愉快的通过豆瓣购书
    我对少林方丈释永信的一点初浅看法
    myet: 练习英语口语不错
    蚂蚁社区和胃病治疗诀窍
    装好了ubuntu,w2k却无法启动了,:(
  • 原文地址:https://www.cnblogs.com/wudongyu/p/14906928.html
Copyright © 2011-2022 走看看