首页 > 其他分享 >优化案例

优化案例

时间:2023-03-19 21:55:20浏览次数:29  
标签:tcp 案例 默认 ipv4 TIME net 优化 WAIT

优化案例1:

现象:最近发现几个监控用的脚本在连接监控数据库的时候偶尔会连不上,报错:
Couldn't connect to host:3306/tcp: IO::Socket::INET: connect: Cannot assign requested address
查看了一下发现系统中存在大量处于TIME_WAIT状态的tcp端口

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

原因:由于要监控的主机太多,监控的agent可能在短时间内创建大量连接到监控数据库(MySQL)并释放造成的

解决方案:

#vi /etc/sysctl.conf
 
 net.ipv4.tcp_tw_reuse = 1       #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
 net.ipv4.tcp_tw_recycle = 1    #表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭

 

内核参数优化:

vi /etc/sysctl.conf
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 时间 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套接字拖死。

 

标签:tcp,案例,默认,ipv4,TIME,net,优化,WAIT
From: https://www.cnblogs.com/fengzi7314/p/17234481.html

相关文章

  • CRUD案例
    import'./index.css'importavatarfrom'./images/avatar.png'importReactfrom'react'import{v4asuuid}from'uuid'//时间格式化functionformatDate(......
  • Vue 搜索案例:gitHub 用户搜索案例
    一:界面示例效果......
  • 分布式流处理组件-优化篇:Producer生产调优之核心参数
    ......
  • 优先队列(PriorityQueue)常用方法及简单案例
    1前言PriorityQueue是一种特殊的队列,满足队列的“队尾进、队头出”条件,但是每次插入或删除元素后,都对队列进行调整,使得队列始终构成最小堆(或最大堆)。具体调整如下:插入......
  • 基于tensorflow的RBF神经网络案例
    1前言在使用RBF神经网络实现函数逼近中,笔者介绍了使用Matlab训练RBF神经网络。本博客将介绍使用tensorflow训练RBF神经网络。代码资源见:RBF案例(更新版)这几天,笔者在......
  • Python三次样条插值与MATLAB三次样条插值简单案例
    1三次样条插值早期工程师制图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由弯曲,然后沿木条画下曲线,成为样条曲线。设函数S(x)∈C2[a,b],且在每......
  • seq2seq模型案例分析
    1seq2seq模型简介seq2seq模型是一种基于【Encoder-Decoder】(编码器-解码器)框架的神经网络模型,广泛应用于自然语言翻译、人机对话等领域。目前,【seq2seq+attention】(注......
  • 优化利器In-Memory开启和效果
    本文主要介绍OracleIn-Memory选件,Oracle在12.1.0.2就已经推出了In-Memory这个选件,现在通常会建议所有使用19.8及之后版本的用户,有条件都要留给In-memory一点内存区域。......
  • 3.2 案例引入
    【案例1】进制转换十进制整数N向其他进制数d(二、八、十六)的转换是计算机实现计算基本问题转换法则:除以d倒取余该转换法则对应一个简单算法原理:n=(ndivd)*d+nmod......
  • MySQL数据库的SQL优化
    分创建时和查询时这两个阶段的优化展开。创建时优化Schema和数据类型优化尽量使用对应的数据类型。比如,不要用字符串类型保存时间,用整型保存IP。选择更小的数据类型。......