精华内容
下载资源
问答
  • 通过上面的设置以后,你可能会发现一个新的问题,就是netstat时可能会出现这样的警告:引用warning, got duplicate tcp line这正是上面允许tcp复用产生的警告,不过这不算是什么问题,总比不允许复用而给服务器带来...

    通过上面的设置以后,你可能会发现一个新的问题,就是netstat时可能会出现这样的警告:

    引用

    warning, got duplicate tcp line

    这正是上面允许tcp复用产生的警告,不过这不算是什么问题,总比不允许复用而给服务器带来很大的负载合算的多

    尽管如此,还是有解决办法的:

    1、 安装rpm包:

    [root@root2 opt]# rpm -Uvh net-tools-1.60-62.1.x86_64.rpm

    Preparing...                ########################################### [100%]

    1:net-tools              ########################################### [100%]

    [root@root2 opt]#

    对于下载的是源码的rpm则需要使用以下方法安装:

    2、 安装rpm源码包方法:

    a)         安装src.rpm:

    # [root@root1 opt]# rpm -i net-tools-1.60-62.1.src.rpm

    ……

    b)        制作rpm安装包:

    [root@root1 opt]# cd /usr/src/RedHat/SPECS/

    [root@root1 SPECS]# rpmbuild -bb net-tools.spec

    c)        rpm包的升级安装:

    [root@root1 SPECS]# pwd

    /usr/src/redhat/SPECS

    [root@root1 SPECS]# cd ../RPMS/x86_64/

    [root@root1 x86_64]# rpm -Uvh net-tools-1.60-62.1.x86_64.rpm

    3、 再使用netstat来检查时系统正常:

    说明:

    net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

    net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

    net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

    net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。

    net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

    net.ipv4.ip_local_port_range = 1024    65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

    net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

    net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

    net.ipv4.route.gc_timeout = 100  路由缓存刷新频率, 当一个路由失败后多长时间跳到另一个

    默认是300

    net.ipv4.tcp_syn_retries = 1  对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右。

    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}')0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • 统计在一台前端机上高峰时间TCP连接的情况,统计命令:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'结果:image除了ESTABLISHED,可以看到连接数比较多的几个状态是:FIN_WAIT1, TIME_...

    统计在一台前端机上高峰时间TCP连接的情况,统计命令:

    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    结果:

    835f251e1bbc?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

    image

    除了ESTABLISHED,可以看到连接数比较多的几个状态是:FIN_WAIT1, TIME_WAIT, CLOSE_WAIT, SYN_RECV和LAST_ACK;下面的文章就这几个状态的产生条件、对系统的影响以及处理方式进行简单描述。

    发现存在大量TIME_WAIT状态的连接

    tcp 0 0 127.0.0.1:3306 127.0.0.1:41378 TIME_WAIT

    tcp 0 0 127.0.0.1:3306 127.0.0.1:41379 TIME_WAIT

    tcp 0 0 127.0.0.1:3306 127.0.0.1:39352 TIME_WAIT

    tcp 0 0 127.0.0.1:3306 127.0.0.1:39350 TIME_WAIT

    tcp 0 0 127.0.0.1:3306 127.0.0.1:35763 TIME_WAIT

    tcp 0 0 127.0.0.1:3306 127.0.0.1:39372 TIME_WAIT

    tcp 0 0 127.0.0.1:3306 127.0.0.1:39373 TIME_WAIT

    tcp 0 0 127.0.0.1:3306 127.0.0.1:41176 TIME_WAIT

    通过调整内核参数解决

    vi /etc/sysctl.conf

    编辑文件,加入以下内容:

    net.ipv4.tcp_syncookies = 1

    net.ipv4.tcp_tw_reuse = 1

    net.ipv4.tcp_tw_recycle = 1

    net.ipv4.tcp_fin_timeout = 30

    然后执行/sbin/sysctl -p让参数生效。

    net.ipv4.tcp_syncookies = 1表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

    net.ipv4.tcp_tw_reuse = 1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

    net.ipv4.tcp_tw_recycle = 1表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

    net.ipv4.tcp_fin_timeout修改系統默认的TIMEOUT时间

    展开全文
  • 今天服务网站明显过慢查年了一下服务器联接数,纠结于怎么搞定TIME_WAIT# netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c68 CLOSE_WAIT2 CLOSING136 ESTABLISHED38 FIN_WAIT116 FIN_WAIT22 LAST_ACK8 LISTEN71 SYN...

    今天服务网站明显过慢查年了一下服务器联接数,纠结于怎么搞定TIME_WAIT

    # netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c

    68 CLOSE_WAIT

    2 CLOSING

    136 ESTABLISHED

    38 FIN_WAIT1

    16 FIN_WAIT2

    2 LAST_ACK

    8 LISTEN

    71 SYN_RECV

    2936 TIME_WAIT

    #

    状态:描述

    CLOSED:无连接是活动的或正在进行

    LISTEN:服务器在等待进入呼叫

    SYN_RECV:一个连接请求已经到达,等待确认

    SYN_SENT:应用已经开始,打开一个连接

    ESTABLISHED:正常数据传输状态

    FIN_WAIT1:应用说它已经完成

    FIN_WAIT2:另一边已同意释放

    ITMED_WAIT:等待所有分组死掉

    CLOSING:两边同时尝试关闭

    TIME_WAIT:另一边已初始化一个释放

    LAST_ACK:等待所有分组死掉

    linux sysctl.conf close_wait

    $ /proc/sys/net/core/wmem_max

    最大socket写buffer,可参考的优化值:873200

    $ /proc/sys/net/core/rmem_max

    最大socket读buffer,可参考的优化值:873200

    $ /proc/sys/net/ipv4/tcp_wmem

    TCP写buffer,可参考的优化值: 8192 436600 873200

    $ /proc/sys/net/ipv4/tcp_rmem

    TCP读buffer,可参考的优化值: 32768 436600 873200

    $ /proc/sys/net/ipv4/tcp_mem

    同样有3个值,意思是:

    net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力.

    net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段.

    net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket.

    上述内存单位是页,而不是字节.可参考的优化值是:786432 1048576 1572864

    $ /proc/sys/net/core/netdev_max_backlog

    进入包的最大设备队列.默认是300,对重负载服务器而言,该值太低,可调整到1000.

    $ /proc/sys/net/core/somaxconn

    listen()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能.可调整到256.

    $ /proc/sys/net/core/optmem_max

    socket buffer的最大初始化值,默认10K.

    $ /proc/sys/net/ipv4/tcp_max_syn_backlog

    进入SYN包的最大请求队列.默认1024.对重负载服务器,增加该值显然有好处.可调整到2048.

    $ /proc/sys/net/ipv4/tcp_retries2

    TCP失败重传次数,默认值15,意味着重传15次才彻底放弃.可减少到5,以尽早释放内核资源.

    $ /proc/sys/net/ipv4/tcp_keepalive_time

    $ /proc/sys/net/ipv4/tcp_keepalive_intvl

    $ /proc/sys/net/ipv4/tcp_keepalive_probes

    这3个参数与TCP KeepAlive有关.默认值是:

    tcp_keepalive_time = 3600 seconds (1 hours)

    tcp_keepalive_probes = 3

    tcp_keepalive_intvl = 60 seconds

    意思是如果某个TCP连接在idle 2个小时后,内核才发起probe.

    如果probe 3次(每次60秒)不成功,内核才彻底放弃,认为该连接已失效.

    对服务器而言,显然上述值太大. 可调整到:

    /proc/sys/net/ipv4/tcp_keepalive_time 120

    /proc/sys/net/ipv4/tcp_keepalive_intvl 30

    /proc/sys/net/ipv4/tcp_keepalive_probes 2

    $ proc/sys/net/ipv4/ip_local_port_range

    指定端口范围的一个配置,默认是32768 61000,已够大.

    在大并发时可以调成1024 65535

    下面是处理time_wait状态时需要处理的一些参数.

    net.ipv4.tcp_syncookies = 1

    表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

    net.ipv4.tcp_tw_reuse = 1

    表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

    net.ipv4.tcp_tw_recycle = 1

    表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

    net.ipv4.tcp_fin_timeout = 30

    表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。

    net.ipv4.tcp_keepalive_time = 1200

    表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

    net.ipv4.ip_local_port_range = 1024 65000

    表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

    net.ipv4.tcp_max_syn_backlog = 8192

    表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

    net.ipv4.tcp_max_tw_buckets = 5000

    表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。

    默认为 180000,改为 5000。对于Apache、Nginx等服务器,上面提到的参数可以很好地减少TIME_WAIT套接字数量,

    避免Squid服务器被大量的TIME_WAIT套接字拖死,此项参数可以控制TIME_WAIT套接字的最大数量。

    ps:http://bbs.51osos.com/thread-7460-1-1.html

    夜空- 本站版权

    1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权

    2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意

    3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责

    4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

    5、原文链接:blog.slogra.com/post-385.html

    post-385.html

    展开全文
  • 据我所知,’time_wait’stat中的tcp端口不能使用.但是,在我的实验中,服务器重用’time_wait’端口?为什么?首先,在客户端机器中,键入命令ehco 40000 40001>的/ proc / SYS /网/的IPv4 / ip_local_port_range....

    据我所知,’time_wait’stat中的tcp端口不能使用.但是,在我的实验中,服务器重用’time_wait’端口?为什么?

    首先,在客户端机器中,键入命令ehco 40000 40001>的/ proc / SYS /网/的IPv4 / ip_local_port_range.因此,TCP端口的最大数量为2.

    服务器代码

    while (1) {

    int len = sizeof(struct sockaddr);

    fd = accept(sfd,&remote,&len);

    read(fd,buf,sizeof(buf));

    close(fd);

    }

    客户代码

    for (i = 0; i < 3; i++)

    {

    sleep(1);

    pid_t pid = fork();

    if (pid == 0)

    {

    handler();

    exit(0);

    }

    }

    void handler()

    {

    * ............. */

    res = connect(sfd,result->ai_addr,result->ai_addrlen);

    if (res == -1) {

    perror("error");

    exit(1);

    }

    printf("connect\n");

    }

    节目

    [root@livecd ~]# ./client

    connect

    [root@livecd ~]# connect

    connect

    最多3个连接.我想,最多2个连接.为什么?

    服务器有2个timewait连接.

    [root@livecd ~]# netstat -anp | grep TIME

    tcp 192.168.88.131:2016 192.168.88.132:40000 TIME_WAIT

    tcp 192.168.88.131:2016 192.168.88.132:40001 TIME_WAIT

    环境

    Linux livecd.centos 2.6.32-642.el6.i686 #1 SMP Tue May 10 16:13:51 UTC 2016

    服务器配置

    [root@livecd ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout

    60

    [root@livecd ~]# cat /proc/sys/net/ipv4/tcp_tw_recycle

    0

    [root@livecd ~]# cat /proc/sys/net/ipv4/tcp_tw_reuse

    0

    客户端配置

    [root@livecd ~]# cat /proc/sys/net/ipv4/ip_local_port_range

    40000 40001

    重要

    我也尝试ubuntu服务器14.04,但得到了相同的结果.

    展开全文
  • Linux修改time_wait不起作用 博主为了在本地测试服务器,决定修改一下time_wait的时长(不知道这个东西的需要复习下tcp四次挥手),随意地在网上这么一搜大部分博客给出类似如下答案: 1.修改/etc/sysctl.conf文件中...
  • 0x00 问题一个服务器运行用nginx的web服务,由于php需要频繁的访问数据库,而且使用的都是短链接,因此一段时间内产生并保持大量的TIME_WAIT。$ netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S...
  • 匿名用户1级2016-04-16 回答# netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c68 CLOSE_WAIT2 CLOSING136 ESTABLISHED38 FIN_WAIT116 FIN_WAIT22 LAST_ACK8 LISTEN71 SYN_RECV2936 TIME_WAIT#状态:描述CLOSED:无...
  • date命令的帮助信息[root... [+格式]或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]以给定的格式显示当前时间,或是设置系统日期。-d,--date=字符串 显示指定字符串所描述的时间,而非当前时间-f,--file=...
  • linux time wait过多优化

    2021-05-19 02:48:05
    WAIT - tcp 0 0 10.0.1.203:42821 137.4.17.168:80 TIME_WAIT - tcp 0 0 10.0.1.203:38870 137.4.17.168:80 TIME_WAIT - tcp 0 0 10.0.1.203:54631 137.4.17.168:80 ESTABLISHED 5531/ftp 当我们运行的程序,网络...
  • linux快速回收TIME_WAIT

    2021-05-13 15:17:00
    我们可以通过调整内核参数来调整:vi /etc/sysctl.conf编辑文件,加入以下内容:net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 30而后执行/sbin/...
  • linux服务器上tcp有大量time_wait状态的解决方法和原因解释毫无疑问,TCP中有关网络编程最不容易理解的是它的TIME_WAIT状态,TIME_WAIT状态存在于主动关闭socket连接的一方。 TIME_WAIT状态存在的理由:TCP/IP协议...
  • 用于众多服务的tcp负载均衡器,提供~2000个请求/秒的峰值吞吐量.它已经运行了2年,但逐渐增加了流量和服务数量.我们观察到即使在重新加载旧...在进一步调查中,我们发现旧进程在TIME_WAIT状态下有许多连接.我们还看到ne...
  • # netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c16 CLOSING130 ESTABLISHED298 FIN_WAIT113 FIN_WAIT29 LAST_ACK7 LISTEN103 SYN_RECV5204 TIME_WAIT状态:描述CLOSED:无连接是活动的或正在进行LISTEN:服务器...
  • netstat下time_wait状态的tcp连接:1.这是一种处于连接完全关闭状态前的状态;2.通常要等上4分钟(windows server)的时间才能完全关闭;3.这种状态下的tcp连接占用句柄与端口等资源,服务器也要为维护这些连接状态...
  • 1. time_wait产生的原因及作用 下面我们先来简单回顾一下TCP连接关闭动作: 在Linux环境下我们可以如下的方式来统计TCP连接的情况: # netstat -nat | awk '/^tcp/ {++S[$NF]} END{for(a in S) print S[a], "\...
  • 查看MySQL5的手册,发现对wait_timeout的最大值分别是24天/365天(windows/linux)。 以windows为例,假设我们要将其设为21天,我们只要修改MySQL5的配置文件“my.ini”(MySQL5 installation dir), 在[MySQLd]增加一...
  • select()函数的最后一个参数是timeout,用来设置超时用的。用的是一个struct timeval结构,需要用到sys/time.h文件。struct timeval {long tv_sec; 秒long tv_usec; 毫毛}设置timeout的值之后呢,select在没有文件...
  • nginx如何处理TIMEWAIT过多?

    千次阅读 2021-08-19 10:43:21
    这个场景下会出现大量socket处于TIME_WAIT状态。如果客户端的并发量持续很高,此时部分客户端就会显示连接不上。 首先先查看 tcp连接状态及数量: #netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a,...
  • mysql设置连接等待时间wait_timeout)

    千次阅读 2021-01-25 16:15:35
    标签:Linux下mysql修改连接超时1,首先进入mysql,查看 wait_timeout、interactive_timeout这个值是否为默认的8小时(即 28800)[root@server110 ~]# mysql -u root -pEnter password:输密码进入执行如下命令show ...
  • 一、性能测试的主要概念和计算公式 系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口...响应时间:一般取平均响应时间 理解了上面三个要素的意义之后,就能推算出它们之间的关系...
  • Linux服务器 大量的CLOSE_WAITTIME_WAIT解决办法 系统上线之后,通过如下语句查看服务器时,发现有不少TIME_WAIT和CLOSE_WAIT。 netstat -an | awk ‘{print KaTeX parse error: Expected 'EOF', got '}' at ...
  • 我已经开始使用Apache JMeter对端点进行负载测试,并注意到在运行一段时间后,我开始看到“无法分配请求的地址”之类的错误,打开此连接的代码是:def lookup(word: String): Option[String] = {try {val socket = new ...
  • 我们平常工作中遇到的,除了针对SYN的拒绝服务攻击,如果有异常,大概率是TIME_WAIT和CLOSE_WAIT的问题。TIME_WAIT一般通过优化内核参数能够解决;CLOSE_WAIT一般是由于程序编写不合理造成的,更应该引起开发者注意...
  • 1.tcp连接状态图: 2.tcp关闭连接图: 参考博客:tcp连接全...4.列出time_wait的tcp连接 netstat -ant| grep -i time_wait 5.统计储于time_wait状态的连接数 netstat -ant|grep -i time_wait |wc -l 6.修改系统内
  • 经常检查apache的连接数,会发现很多无用的time_wait连接。有人说这是正常的,是因为一个请求中途中断造成的;还有人说微软的IE连接时产生的Time_wait会比用Firefox连接时多。个人认为有一定的Time_wait是正常的,...
  • linux time function

    2021-05-15 13:21:12
    UTC(Universal Time Coordinated)是世界协调时间,是格林威治时间在互联网中的表示方法二、标准C语言时间函数1、time(取得本地目前的时间秒数)#includetime_t time(time_t *t);函数说明 此函数会返回从公元1970年1月...
  • 我正在处理i2c-omap驱动程序的一...在i2c-omap.c中,我可以看到调用线程正在等待wait_for_completion_timeout,超时值设置为1秒。我可以看到称为“完整”的IRQ(我在完成后添加了printk)。但是,在“完成”被调用之后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 113,128
精华内容 45,251
关键字:

linuxtimewait时间设置

linux 订阅