zoukankan      html  css  js  c++  java
  • kernel TCP time wait bucket table overflow

    # 故障描述
    
    有一个需求是实时分析API接口访问日志,提取token去数据库查询对应的uid,然后收集一些指标存入到hbase中。
    
    当程序执行一会后会被系统杀死 Killed ! 
    
    # 故障排查
    
    1、CPU平均负载0.06、内存空闲29G
    
    2、查看系统日志 /var/log/messages
    
    提示:kernel: TCP: time wait bucket table overflow
    
    3、查找资料发现是因为 socket TIME_WAIT 超出了内核设定的上限值
    
    # 解决方法
    
    shell > vim /etc/sysctl.conf
    
    net.ipv4.tcp_fin_timeout = 60       # 如果套接字由本端要求关闭,这个参数决定了它保持在 FIN-WAIT-2 状态的时间,缩短可以减少 TIME_WAIT 状态数量
    
    net.ipv4.tcp_max_tw_buckets = 5000  # TIME_WAIT 数量,超出的部分会被系统删除
    
    net.ipv4.tcp_timestamps = 1         # 该参数与快速回收同时开启且网络环境属于NAT(SLB、LVS)这种情况下会出现问题,切记
    net.ipv4.tcp_tw_reuse = 0           # 连接重用,降低 TIME_WAIT 状态数量
    net.ipv4.tcp_tw_recycle = 0         # 快速回收 不建议开启,有可能导致无法建立 TCP 连接
    
    net.ipv4.ip_local_port_range = 32768 60999  # 本地可用端口范围,增加会使服务器可以建立更多的连接,增加吞吐量
    
    # 所以优化的结果如下:
    
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_max_tw_buckets = 32768
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.ip_local_port_range = 10240 60999
  • 相关阅读:
    Luogu 4841 城市规划
    Luogu 4721 【模板】分治 FFT
    Luogu 4091 [HEOI2016/TJOI2016]求和
    Luogu 3723 [AH2017/HNOI2017]礼物
    FFT笔记
    Luogu 4900 食堂
    Luogu 4155 [SCOI2015]国旗计划
    Luogu 4069 [SDOI2016]游戏
    Luogu 4254 [JSOI2008]Blue Mary开公司
    Luogu 4251 [SCOI2015]小凸玩矩阵
  • 原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/8352726.html
Copyright © 2011-2022 走看看