`

修改Linux内核参数,减少TCP连接中的TIME-WAIT sockets

 
阅读更多

新增的一组Apache服务器上线以来,我用netstat -an命令发现服务器中有大量状态为TIME-WAIT的TCP连接,于是用/sbin/sysctl -a查看了一下Linux的各项内核参数,并翻阅有关资料,决定修改其中的两项参数,以达到减少TCP连接中TIME-WAIT sockets的目的。
      vi /etc/sysctl.conf
  编辑/etc/sysctl.conf文件,增加三行:

引用
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

  说明:
  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,表示关闭。

  再执行以下命令,让修改结果立即生效:
  /sbin/sysctl -p

  用以下语句看了一下服务器的TCP状态:
  netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
  返回结果如下:
  ESTABLISHED 1423
  FIN_WAIT1 1
  FIN_WAIT2 262
  SYN_SENT 1
  TIME_WAIT 962

  效果:处于TIME_WAIT状态的sockets从原来的10000多减少到1000左右。处于SYN_RECV等待处理状态的sockets为0,原来的为50~300。

分享到:
评论

相关推荐

    优化Linux的内核参数来提高服务器并发处理能力

    - 含义: 开启TCP连接中TIME-WAIT sockets的快速回收机制。 4. **缩短TIME_WAIT状态的持续时间** - 参数: `net.ipv4.tcp_fin_timeout=30` - 含义: 修改系统默认的TIMEOUT时间,以加快TIME_WAIT状态的结束,从而...

    linux内核参数

    Linux内核参数调优是优化服务器性能的关键环节,特别是在硬件资源有限的情况下,通过调整内核参数可以有效地提高服务器的并发处理能力。对于Web服务器,如Nginx和Apache,它们的并发模型对于处理高负载至关重要。...

    操作系统-面试题

    net.ipv4.tcp_tw_recycle: 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭 net.ipv4.tcp_fin_timeout : 修改系統默认的 TIMEOUT 时间。 Linux下IO模型有几种,各自的含义是什么。 IO的本质是...

    教案之优化Linux的内核参数来提高服务器并发处理能力.pdf

    总结来说,优化Linux内核参数是提高服务器并发处理能力的有效手段,特别是针对TCP连接管理进行微调,可以有效地解决TIME_WAIT状态的连接占用资源的问题,并增强服务器的防御能力。同时,合理调整端口范围和连接队列...

    高负载系统,网络参数调整 linuxetc.doc

    当此参数设置为1时,TCP连接中的TIME-WAIT状态会更快地被回收,从而提高系统资源的利用率。但请注意,此设置可能会影响跨不同时区的连接,因此需谨慎使用。 `net.ipv4.tcp_fin_timeout = 30`定义了当本地端请求关闭...

    apache time_wait连接数太多问题解决方法

    通过对Apache服务器中的`TIME_WAIT`连接问题进行深入分析,并采取相应的内核参数调整措施,可以有效地降低服务器资源消耗,提升服务的稳定性和响应速度。此外,还可以结合其他优化手段(如增加并发连接数限制、使用...

    mysql调优-以5.6版本为例-详细笔记文档总结

    MySQL调优-以5.6版本为...net.ipv4.tcp_tw_reuse = 1:这个参数表示允许将TIME-WAIT sockets重新用于新的TCP连接。 net.ipv4.tcp_keepalive_time = 30:这个参数表示当keepalive启用时,TCP发送keepalive消息频度。 ...

    nginx优化.pdf

    3. **`net.ipv4.tcp_tw_recycle`**:启用time-wait sockets的快速回收机制,有助于减少time-wait状态的连接占用资源。 4. **`net.ipv4.tcp_tw_reuse`**:允许TIME-WAIT sockets被重用,对于高并发场景尤其有用。 5...

    你知道一台Linux服务器可以负载多少个连接吗

    例如,增大`net.core.rmem_default`和`net.core.wmem_default`以提高TCP缓冲区大小,增加`net.ipv4.tcp_max_syn_backlog`以扩大SYN等待队列长度,减少`net.ipv4.tcp_fin_timeout`以更快地回收FIN-WAIT-2状态的连接等...

    mysql占用率达到99%

    3. **分析TIME_WAIT状态的连接原因**:TIME_WAIT状态是TCP连接生命周期中的一个正常阶段,但它会占用一定的系统资源。在高并发场景下,如果大量的连接都停留在TIME_WAIT状态,可能会导致新的连接无法建立,从而影响...

    linux+tomcat+mysql+solr调优

    该选项可以减少TIME_WAIT sockets的数量,从而降低系统的内存使用。 - `net.ipv4.tcp_fin_timeout`:设置TIME_WAIT socket的最大存活时间。根据具体的应用场景调整该值,以减少TIME_WAIT状态的socket数量。 ##### ...

    linux ss命令详解

    - TCP状态过滤: 支持如`established`, `syn-sent`, `syn-recv`, `fin-wait-1`, `fin-wait-2`, `time-wait`, `closed`, `close-wait`, `last-ack`, `listening`, `closing`等状态,以及`all`, `connected`, `...

    系统运维工程师以及各厂面经及答案.docx

    在高并发的短连接TCP服务器环境中,当服务器完成请求处理并立即按照正常流程关闭连接时,会使得大量套接字(sockets)处于`TIME_WAIT`状态。这是因为TCP协议为了确保所有数据都能被正确接收,并避免旧的数据包在网络...

    Linux系统内核空间与用户空间通信的实现与分析

    在Linux操作系统中,内核空间和用户空间是两个完全隔离的区域,它们之间的通信是通过特定的机制来实现的。这种通信方式对于系统的稳定性和安全性至关重要。本文将深入探讨Linux系统内核空间与用户空间通信的实现原理...

    利用原始套接字实现的TCP协议分析器

    为了实现TCP协议分析,我们还需要理解TCP状态机,包括CLOSED、LISTEN、SYN_SENT、SYN_RECV、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、CLOSE_WAIT、CLOSING、LAST_ACK、TIME_WAIT等状态。根据接收到的TCP包中的标志位,...

    Node性能跟踪与稳定性优化

    针对Node.js应用的特定需求,可能还需要对Linux内核参数进行调整,以优化网络连接管理和内存使用效率。例如: - `net.ipv4.tcp_max_syn_backlog=65536`:设置最大半连接队列长度,提高并发连接处理能力。 - `...

    Linux环境高级编程

    网络编程在Linux环境中涉及套接字(sockets)API,包括TCP/IP协议栈的理解,客户端和服务器端的建立连接、数据传输和断开连接。读者将学习到socket(), bind(), listen(), accept(), connect(), send(), recv()等函数...

    小米运维面试题目(1).docx

    - 优化措施包括调整TCP参数(如TCP_TIMEWAIT_LEN)、启用TIME_WAIT sockets的重用等。 - **知识点拓展**:了解TCP的状态转换及优化方法。 #### 第四部分:Python部分 **题目17:xrange与range的异同** - **知识...

    Linux 进程通信(IPC)深刻理解

    - **8.3 套接字的连接建立**:TCP套接字需要经过三次握手建立连接,UDP套接字则是无连接的。 - **8.4 套接字的错误处理**:通过设置socket选项或使用getsockopt()获取状态信息。 - **8.5 套接字的安全性**:包括认证...

Global site tag (gtag.js) - Google Analytics