zoukankan      html  css  js  c++  java
  • 服务器大量的fin_wait1 状态长时间存在原因分析-1

    上文描述了在出现大量fin-wait-1出现的原因,占用的内存等,这里讲一下如何处理这种情况。

    首先,fin发送之后,有可能会丢弃,那么发送多少次这样的fin包呢?fin包的重传,也会采用退避方式,在2.6.358内核中采用的是指数退避,2s,4s,最后的

    重试次数是由tcp_orphan_retries来限制的。

    [root@localhost ~]# cat /proc/sys/net/ipv4/tcp_orphan_retries
    0

    查看对应版本的内核:

    处理的变量是sysctl_tcp_orphan_retries,

    /* Calculate maximal number or retries on an orphaned socket. */
    static int tcp_orphan_retries(struct sock *sk, int alive)
    {
    int retries = sysctl_tcp_orphan_retries; /* May be zero. */

    /* We know from an ICMP that something is wrong. */
    if (sk->sk_err_soft && !alive)
    retries = 0;

    /* However, if socket sent something recently, select some safe
    * number of retries. 8 corresponds to >100 seconds with minimal
    * RTO of 200msec. */
    if (retries == 0 && alive)----------------------------虽然cat看到的值是0,但其实内核中采用的是8.
    retries = 8;
    return retries;
    }

    将这个值改小,我的环境设置为2.

    同时,将孤儿socket的数量限制改小。

    /proc/sys/net/ipv4/tcp_max_orphans 修改为 500.

    修改之后,可以看到内存明显占用释放出来。

    由于客户端窗口经常为0,在服务器做一下限速,平稳发包,防止丢包重传之后,引起服务器的软中断也会上升。

    水平有限,如果有错误,请帮忙提醒我。如果您觉得本文对您有帮助,可以点击下面的 推荐 支持一下我。版权所有,需要转发请带上本文源地址,博客一直在更新,欢迎 关注 。
  • 相关阅读:
    表格转换,多行聚集成列,长列转换成多行
    记第一次写数据库文章总结
    免疫 TCR BCR 病毒滴度
    Genome-wide Study Identifies Association between HLA-B*55:01 and Self-Reported Penicillin Allergy
    LD plot
    beta p-value SE
    蛋白截断变异(protein-truncating variant,PTV)
    The human noncoding genome defined by genetic diversity
    Fst计算
    LD Score regression文章 ;confounding
  • 原文地址:https://www.cnblogs.com/10087622blog/p/7283150.html
Copyright © 2011-2022 走看看